Betrifft: ab orgAnice 2008
Frage:
Wie kann ich in orgAnice Tabellen aus anderen SQL-Datenbanken einbinden?
Lösung:
Die Einbindung von Tabellen aus anderen SQL-Datenbanken geschieht über Sichten (Views). Eine im orgAnice Database Server definierte Tabelle kann nämlich sowohl auf einer „echten“ SQL-Tabelle, als auch auf einer Sicht basieren.
Im SQL-Server in der orgAnice-Datenbank wird hierfür eine neue Sicht erzeugt, die auf der Fremdtabelle und einer zusätzlichen internen Hilfstabelle basiert. Die Hilfstabelle ist für die Verwaltung der orgAnice-spezifischen Spalten __Org_RecordOID und __Org_RecordNo zuständig. Hier die Vorgehensweise im Detail, mit Beispielanbindung der Customers-Tabelle aus der Northwird-Datenbank:
1.) Erstellen der Hilfstabelle
Die Hilfstabelle ist für die Verwaltung der orgAnice-spezifischen Spalten __Org_RecordOID und __Org_RecordNo zuständig. Die Existenz dieser Spalten ist für die Zusammenarbeit mit orgAnice notwendig. Es muss sichergestellt werden, dass für jeden Datensatz in der Sicht ein entsprechender Datensatz in der Hilfstabelle existiert. Die Hilfstabelle beinhaltet außer diesen beiden Spalten auch die Spalte für den Primärschlüssel der Fremdtabelle.
Erstellen Sie eine neue Tabelle vwCustomers mit den folgenden Spalten:
2.) Füllen der Hilfstabelle mit Daten
Das Füllen der Hilfstabelle mit Daten geschieht über einen Auftrag des SQL-Server-Agenten. Er sorgt dafür, dass für jeden Datensatz in der Fremdtabelle Customers ein neuer Datensatz in der Hilfstabelle vwCustomers erstellt wird.
a. Erstellen Sie einen neuen Auftrag
b. Erstellen Sie einen neuen Auftragsschritt mit dem folgenden Befehl:
INSERT INTO vwCustomers
(CustomerID)
SELECT CustomerID
FROM Northwind.dbo.Customers
WHERE (NOT EXISTS
(SELECT *
FROM vwCustomers
WHERE vwCustomers.CustomerID COLLATE Latin1_General_CI_AS = Northwind.dbo.Customers.CustomerID))
c. Erstellen Sie einen neuen Zeitplan, bspw. für eine Aktualisierung jede Minute
3.) Erstellen der Sicht
Die Sicht kombiniert die Spalten aus der Fremdtabelle Customers mit den Spalten der Hilfstabelle vwCustomers mit Hilfe des Primärschlüssels CustomerID. Die Daten der Sicht werden in einer Tabelle innerhalb des orgAnice Database Servers zur Verfügung gestellt.
Erstellen Sie eine neue Sicht Customers mit der folgenden SQL-Abfrage:
SELECT dbo.vwCustomers.__Org_RecordOID, dbo.vwCustomers.__Org_RecordNo, Northwind.dbo.Customers.*
FROM Northwind.dbo.Customers
INNER JOIN dbo.vwCustomers ON Northwind.dbo.Customers.CustomerID = dbo.vwCustomers.CustomerID COLLATE Latin1_General_CI_AS
4.) Erstellen einer neuen Tabelle in orgAnice
In orgAnice muss nun eine neue Tabelle erstellt werden, die den gleichen Namen und Struktur, wie die Sicht im SQL-Server besitzt.
Erstellen Sie in orgAnice eine neue Tabelle Customers mit den abgebildeten Feldern:
Sie können ebenfalls Indizes erstellen, die allerdings nur auf einem Feld basieren dürfen.
5.) Zugriff auf die neue Tabelle
Auf die neue Tabelle kann nun ganz normal mit orgAnice-Mitteln zugegriffen werden.
Erstellen Sie ein neues Tabellenlayout für die Tabelle Customers und binden Sie es in die Oberfläche ein: