Altova MapForce 2023 Professional Edition

Wenn Sie eine Mapping-Verbindung zu einer Datenbanktabelle erstellen, wird neben der betroffenen Tabelle eine Datenbankaktionsschaltfläche angezeigt. Wenn Sie darauf klicken, wird das Dialogfeld "Datenbankaktionen" aufgerufen, in dem Sie die Einfüge-, Aktualisierungs- und Löschaktionen für die Datenbank sowie andere Optionen konfigurieren können.

mf_db_actions_settings

Dialogfeld "Datenbankaktionen"

Im Folgenden finden Sie eine Beschreibung der Einstellungen, die Sie im Dialogfeld "Datenbankaktionen" vornehmen können.

 

Vor dem ersten Datensatz auszuführende SQL-Anweisung

In diesem Gruppenbereich können Sie SQL-Anweisungen definieren, die vor unter Für jeden Datensatz auszuführende Aktionen definierten Aktionen ausgeführt werden sollen. Aktivieren Sie das gewünschte Optionsfeld:

 

Keine - Es wird keine Aktion ausgeführt. Dies ist die Standardeinstellung.

Alle Datensätze LÖSCHEN - Alle Datensätze aus der ausgewählten Tabelle werden gelöscht, bevor eine im Gruppenbereich Für jeden Datensatz auszuführende Aktionen definierte Aktion ausgeführt wird. Aktivieren Sie das Kontrollkästchen auch alle Datensätze in Child-Tabellen löschen, wenn auch die in Child-Tabellen der ausgewählten Tabelle gespeicherten Daten entfernt werden sollen. Ein Beispiel dafür finden Sie unter Einfügen von Daten in mehrere verknüpfte Tabellen.

Benutzerdefinierte SQL - Schreiben Sie eine benutzerdefinierte SQL-Anweisung, die sich auf die gesamte Tabelle auswirkt. Beachten Sie, dass die Unterstützung mehrerer SQL-Anweisungen in einer Abfrage von der Datenbank, der Verbindungsmethode und dem verwendeten Treiber abhängt.

 

Für jeden Datensatz auszuführende Aktionen

In dieser Gruppe von Einstellungen werden die Datenbankaktionen, die an dieser Tabelle bei Ausführung des Mappings ausgeführt werden sollen, definiert. Um Tabellenaktionen zu verwalten, klicken Sie auf die Schaltflächen Aktion anhängen, Aktion einfügen oder Aktion löschen. Falls erforderlich, können auch mehrere Aktionen definiert werden (z.B. eine "Aktualisieren, wenn..."-Aktion, gefolgt von einer "Rest einfügen"-Aktion).

 

Die definierten Tabellenaktionen werden von links nach rechts verarbeitet. Im oben gezeigten Beispiel wird zuerst die Aktion "Aktualisieren, wenn..." verarbeitet. Wenn die Aktualisierungsbedingung nicht erfüllt wird, wird die darauf folgende Aktion verarbeitet (in diesem Beispiel die Aktion "Rest einfügen"). Beachten Sie die folgenden Punkte:

 

Alle definierten Bedingungen einer Aktion müssen erfüllt werden, damit die Datenbankaktion ausgeführt wird. Wenn dies der Fall ist, werden alle Felder, die im Mapping zwischen der Quell- und Zielkomponente miteinander verbunden sind, aktualisiert. Alle nachfolgenden Datenbankaktionen (rechts von einer Aktion, deren Bedingungen erfüllt wurden), werden für diesen Datensatz ignoriert.

Wenn die definierte Bedingung nicht erfüllt wird, so wird die Datenbankaktion übersprungen und die nächste Aktion (rechts davon) wird verarbeitet.

Wenn keine der Bedingungen erfüllt wird, werden keine Datenbankaktionen ausgeführt.

 

Datenbankaktionen, die nach "Alles einfügen" oder "Rest einfügen" definiert sind, werden nie ausgeführt, da es für Einfügeaktionen keine Spaltenbedingungen gibt. Wenn dies der Fall ist, wird ein Dialogfeld angezeigt, dass die nachfolgenden Spalten mit Datenbankaktionen gelöscht werden.

 

Mit dem Kontrollkästchen NULL gleich, das neben den einzelnen Datensätzen, auf die es anwendbar ist, angezeigt wird, weisen Sie MapForce an, Nullwerte im Quelldatensatz als gleich Nullwerten im Zieldatensatz zu behandeln. Wenn Sie dieses Kontrollkästchen nicht aktivieren, erhalten Sie unter Umständen unerwünschte Ergebnisse, siehe Behandlung von Nullwerten in Datenbankaktionen).

 

Wenn mit dem Mapping eine Tabelle aktualisiert wird, die Sekundärschlüsselbeziehungen zu anderen Tabellen hat, können die folgenden Optionen verwendet werden:

 

Daten in Child-Tabellen löschen

Diese Option ist sinnvoll, wenn Sie die Aktion "Aktualisieren, wenn.." für eine Parent-Tabelle auswählen. Sie ist eventuell erforderlich, wenn die Anzahl der Datensätze in der Quelldatei nicht mit der Anzahl der Datensätze in der Zieldatenbank übereinstimmt und Sie die Datenbank damit synchronisieren möchten (keine verwaisten Child-Tabellen). Siehe auch Optionen für Child-Tabellen bei Aktualisierung einer Parent-Tabelle.

Input-Child-Daten ignorieren

Verwenden Sie diese Option, wenn Sie eine übergeordnete Zieltabelle aktualisieren möchten, ohne dass davon Child-Tabellen/Datensätze dieser Tabelle betroffen sein sollen. Siehe auch Optionen für Child-Tabellen bei Aktualisierung einer Parent-Tabelle.

 

Beispiele für die verschiedenen Kombinationen von Aktionen finden Sie in den folgenden Kapiteln:

 

Einfügen von Daten in eine Tabelle

Einfügen von Daten in mehrere verknüpfte Tabellen

Aktualisieren einer Tabelle

Optionen für Child-Tabellen bei Aktualisierung einer Parent-Tabelle

Die Aktion "Aktualisieren, wenn...Rest einfügen"

Die Aktion "Löschen, wenn..."

Die Aktion "Ignorieren, wenn..."

 

 

Transaktionen verwenden

Aktiviert für diese spezielle Datenbankaktion Datenbanktransaktionen. Nähere Informationen dazu finden Sie unter Behandlung von Datenbankausnahmen.

 

Bulk Transfer verwenden

Aktiviert den Bulk Transfer (mehrere INSERT-Anweisungen in einer einzigen Abfrage). Bulk Transfer wird unterstützt, wenn das Mapping mit MapForce Server ausgeführt wird und wenn als Datenbankaktion "Alles einfügen" definiert ist. Nähere Informationen dazu finden Sie unter Bulk-Einfügungen (MapForce Server).

© 2017-2023 Altova GmbH