Altova MapForce 2023 Enterprise Edition

Um eine Datenbankkomponente im Mapping zu ändern, sodass darin eine neue Datenbankverbindung verwendet wird, öffnen Sie die Datenbank-Komponenteneinstellungen, klicken Sie auf Ändern und befolgen Sie die Anweisungen des Assistenten, um eine Verbindung zu einer neuen Datenbank herzustellen. Wenn Sie nur die im Mapping angezeigten Datenbankobjekte wechseln möchten, klicken Sie mit der rechten Maustaste auf die Titelleiste der Datenbankkomponente und wählen Sie im Kontextmenü den Befehl Datenbankobjekte hinzufügen/bearbeiten/entfernen, siehe auch Grundlegendes zu Datenbanken.

 

Beachten, Sie, dass die bestehenden Mapping-Verbindungen zu oder von einer Datenbankkomponente bei einem Wechsel der Datenbank nicht alle neu gemappt werden. Bei den meisten Datenbankarten können die Mapping-Verbindungen nach dem Wechsel einer Datenbank jedoch beibehalten werden, wenn Sie einige Vorkehrungen treffen, wie in diesem Kapitel beschrieben.

 

Wenn Sie Datenbankobjekte, wie unter Hinzufügen, Bearbeiten und Entfernen von Datenbankobjekten beschrieben, auswählen, können Sie optional auswählen, ob die Datenbankobjektnamen als relativ zu einem Standardschema behandelt werden sollen. Im Zusammenhang mit einer Datenbank ist ein "Schema" eine logische Gruppierung von Datenbankobjekten - normalerweise zu Sicherheitszwecken wie der Zuweisung von Berechtigungen. Schemas verhalten sich je nach Datenbankart etwas unterschiedlich.

 

Datenbankobjektnamen in MapForce als relativ zu einem Schema zu behandeln, ist wichtig, wenn Sie beabsichtigen, im Mapping zu einem späteren Zeitpunkt zu einer anderen Datenbank (z.B. zu einer Produktionsdatenbank) zu wechseln. Dies ist auch nützlich, wenn das Datenbankschema auf dem Server irgendwann umbenannt wurde und Sie daher das Mapping entsprechend aktualisieren müssen. Wenn das neue Schema dieselbe Struktur wie das zum Zeitpunkt des Mapping-Designs verwendete hat, können Sie zu diesem Schema wechseln, ohne alle Mapping-Verbindungen manuell ändern zu müssen. Dies ist nur dann möglich, wenn Sie die Objeknamen, wie unten beschrieben, als relativ zu einem Standardschema konfigurieren.

 

Beachten Sie die folgenden Punkte:

 

Die Verwendung von Objektnamen relativ zu einem Standardschema ist bei den Datenbanktypen möglich, die Schemas unterstützen: IBM DB2, IBM Informix, IBM Db2 für i (iSeries), Oracle, PostgreSQL, Progress OpenEdge, SQL Server und Sybase.

Diese Funktionalität wird ab MapForce Version 2020 unterstützt.

Wenn die Datenbankkomponente lokale Beziehungen oder SELECT-Anweisungen als virtuelle Tabellen enthält, können relative Namen nicht verwendet werden.

 

So behandeln Sie Datenbankobjektnamen als relativ zum Standardschema:

 

1.Klicken Sie mit der rechten Maustaste auf eine Datenbankkomponente im Mapping und wählen Sie im Kontextmenü den Befehl Datenbankobjekte hinzufügen/entfernen/bearbeiten.

2.Wählen Sie ein oder mehrere Objekte, die je nach Anwendung zum Standardschema oder zum Standardkatalog (Datenbank) und Schema gehören, aus. Die Standarddatenbank und das Standardschema werden fett angezeigt. Im Beispiel unten ist der Standardkatalog Sandbox und das Standardschema user. Diese Struktur ist SQL Server-Datenbank-spezifisch und kann bei anderen Datenbankarten anders aussehen. Nähere Informationen zur angezeigten Struktur finden Sie unter Hinzufügen, Bearbeiten und Entfernen von Datenbankobjekten.

mf_db_switch_01

3.Aktivieren Sie das Kontrollkästchen Objektnamen relativ zum Standardschema verwenden. Beachten Sie, dass dieses Kontrollkästchen ausgegraut ist, wenn die Datenbank relative Objektnamen nicht unterstützt.

 

Wenn sich die im Mapping benötigten Objekte in einem anderen Schema (und nicht dem Standardschema) befinden, haben Sie die folgenden Möglichkeiten:

 

Verbinden Sie sich als ein anderer Benutzer, der Zugriff auf das benötigte Standardschema hat, mit der Datenbank.

Konfigurieren Sie den Datenbankserver um, um das Standardschema des bestehenden Datenbankbenutzers zu ändern, vorausgesetzt, Sie haben die nötigen Berechtigungen dazu.

 

Ein Datenbank-Administrator könnte das Standardschema eines Datenbankbenutzers z.B. bei einer SQL Server-Datenbank mit einer Anweisung wie der unten gezeigten ändern (dabei wird angenommen, dass der aktuelle Katalog "Sandbox" ist und dass sowohl der Benutzer als auch das Schema bereits vorhanden sind).

 

USE [Sandbox]
GO
ALTER USER [test_user] WITH DEFAULT_SCHEMA=[test_schema]
GO

 

Datenbankobjekte, die relativ zum Standardschema sind, werden im Mapping mit einem relativen Namen angezeigt. Beachten Sie die Unterschiede zwischen den folgenden beiden Datenbankkomponenten:

mf_db_switch_02

In der linken Komponente wurde das Kontrollkästchen Objektnamen relativ zum Standardschema verwenden aktiviert. Daher wird die Tabelle mit einem relativen Namen angezeigt. In der rechten Komponente wurde das Kontrollkästchen nicht aktiviert, daher enthält der Tabellenname den Schemanamen.

 

Wenn Datenbankobjekte relativ referenziert werden, können Sie im Mapping folgendermaßen zu einer neuen Datenbank oder einem neuen Schema wechseln, ohne dass dabei die Mapping-Verbindungen verloren gehen:

 

Öffnen Sie die Datenbank-Komponenteneinstellungen und klicken Sie auf Ändern. Befolgen Sie die Anweisungen des Assistenten, um als neuer Benutzer eine Verbindung zur neuen Datenbank herzustellen. Wenn Sie die Objekte mit einem relativen Namen qualifiziert haben und die neue Datenbank dieselbe Struktur wie die alte hat, werden alle Verbindungen im Mapping automatisch aktualisiert. Sie entsprechen nun dem Standardkatalog und Schema des neuen Datenbankbenutzers.

Wenn Sie den Wechsel immer wieder durchführen müssen, wird empfohlen, die Datenbankverbindung als globale Ressource zu definieren. Die globale Ressource könnte zu.B. zwei Konfigurationen haben: eine Standardkonfiguration für die Entwicklungsdatenbank und eine Produktionskonfiguration. Durch Auswahl der gewünschten Konfiguration aus einer Dropdown-Liste können Sie zwischen den Datenbanken wechseln, vorausgesetzt beide Datenbanken haben dieselbe Struktur:

mf_globalresource_08

Nähere Informationen zu diesem Szenario finden Sie unter Beispiel: Wechseln von Datenbanken.

 

Wenn Datenbankobjekte nach dem Wechsel der Datenbank rot angezeigt werden, bedeutet dies, dass diese im neuen Datenbankschema nicht vorhanden sind.

 

Codegenerierung

Das Kontrollkästchen Objektnamen relativ zum Standardschema verwenden wirkt sich auf den generierten C#, C++ oder Java-Programmcode aus. Wenn dieses Kontrollkästchen aktiviert ist, werden auch im generierten Code alle Datenbankreferenzen relativ. Im Folgenden sehen Sie ein Beispiel für eine generierte SQL-Anweisung (in C#), wenn das Kontrollkästchen nicht aktiviert wurde. Beachten Sie, dass der Tabellenname den Schemanamen enthält.

 

var3_NewStatement = (Altova.Db.Dbs.NewStatement(closure.var1_Connection_Instance, 1, "SELECT [id], [val], [user_data] FROM [user].[table]"));

 

Im Folgenden sehen Sie ein Beispiel für eine generierte SQL-Anweisung (in C#), wenn das Kontrollkästchen aktiviert wurde:

 

var3_NewStatement = (Altova.Db.Dbs.NewStatement(closure.var1_Connection_Instance, 1, "SELECT [id], [val], [user_data] FROM [table]"));

 

Anmerkung:Es gibt noch eine ältere Methode, um Schemanamen im generierten Code zu entfernen. Aktivieren Sie dazu in den Datenbank-Komponenteneinstellungen das Kontrollkästchen Schemanamen aus Tabellennamen entfernen. Diese Methode wird nur aus Gründen der Rückwärtskompatibilität unterstützt und sollte vermieden werden.

© 2017-2023 Altova GmbH