OKB-000225 | Einbindung von Tabellen aus anderen SQL-Datenbanken

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: