Altova MobileTogether Designer

Speichern von Daten in der DB

Zur Startseite Zurück Nach oben Weiter

In diesem Abschnitt:

 

Speichern auf Basis des Lösungsfortschritts

Die Aktion "Speichern"  

Die Aktion "DB ausführen"

Speichern verknüpfter Tabellen

Filtern der zu speichernden Spalten

Informationen zu OriginalRowSet (Originalzeilengruppe)

Transaktionen mit "Commit" speichern

 

Speichern auf Basis des Lösungsfortschritts

Das Kontextmenü eines $DB Root-Node enthält den Befehl Daten speichern (Abbildung unten), mit dem die vom Root-Node repräsentierte Datenquelle an verschiedenen Punkten des Lösungsablaufs gespeichert werden kann. Unten finden Sie eine Beschreibung der Optionen dazu. Wenn die Standardoption Nicht automatisch ausgewählt ist, werden die Daten nur gespeichert, wenn die Speichern-Aktion eines Ereignisses ausgelöst wird.

 

Über den Befehl Daten speichern wird ein Untermenü angezeigt, das die folgenden einander ausschließenden Optionen enthält (nur eine davon kann jeweils ausgewählt werden):

MTDSaveDataContextMenu

Bei jedem Verlassen der Seite: Die Daten in der Struktur werden bei jedem Verlassen einer Seite, die diese Struktur enthält, gespeichert.

Bei jeder Fertigstellung einer Lösung: Die Daten in der Struktur werden beim Verlassen der Lösung gespeichert, egal an welchem Punkt die Lösung beendet wird.

Beim letzten Absenden: Die Daten in der Struktur werden gespeichert, wenn der Workflow seinem Design entsprechend von der ersten bis zur letzten Seite durchgeführt wird und nachdem der Benutzer auf die letzte Absenden-Schaltfläche getippt hat. Wenn diese Option ausgewählt ist und die Lösung beendet wird, bevor der Benutzer auf die letzte Absenden-Schaltfläche getippt hat, werden die Daten in der Struktur nicht gespeichert.

Nicht automatisch: Die Struktur wird nicht automatisch gespeichert. Zum Speichern der Daten müssen Sie die Aktionen Speichern, In Datei speichern oder Unter HTTP/FTP speichern verwenden.

 

Im Fall von Datenbanken stehen Optionen zum Speichern (i) ausschließlich von Änderungen, (ii) aller Zeilen und (iii) aller Zeilen, für den Fall, dass irgendeine Änderung erfolgt ist, zur Verfügung. Stellen Sie bei Auswahl einer Option, bei der auf Änderungen überprüft wird, sicher, dass für die Tabelle ein OriginalRowSet Node erstellt wurde, da sonst bei der Validierung ein Fehler ausgegeben wird.

 

Die Standardeinstellung ist Nicht automatisch.

 

Die Aktion "Speichern"

Daten können in der DB gespeichert werden, wenn ein Seitenereignis oder ein Steuerelementereignis, für das die Speichern-Aktion definiert ist, ausgelöst wird. Bei einem solchen Ereignis kann es sich z.B. um einen Klick auf die Schaltfläche Absenden durch den Endbenutzer handeln. In der Abbildung unten befindet sich die Schaltfläche Absenden in der Titelleiste "Edit Offices Table".

MTDDBCSimulatorEditOffices01Short

Die Aktion Speichern kann für eine Seiten- oder Steuerelementaktion definiert werden. Das entsprechende Dialogfeld "Aktionen" wird über das Dialogfeld "Alle Aktionen" (Seite | Aktionsübersicht) aufgerufen. In der Abbildung unten sehen Sie ein Dialogfeld "Seitenaktionen", in dem die Aktion "Speichern" für das Ereignis BeiKlickAufAbsenden definiert ist.

MTDDBCEditOfficesPageActions
Anmerkung:Sie haben die Wahl, (i) nur diejenigen Datensätze, die geändert, hinzugefügt oder gelöscht wurden, (ii) alle Datensätze oder (iii) alle Datensätze, falls irgendeine Änderung vorgenommen wurde, zu speichern. Stellen Sie bei Auswahl einer Option, bei der auf Änderungen überprüft wird, sicher, dass für die Tabelle ein OriginalRowSet Node erstellt wurde, da sonst bei der Validierung ein Fehler ausgegeben wird. Beachten Sie: Wenn die Datenbank keinen privaten Schlüssel hat, wird die gesamte geänderte Tabelle in der Datenbank gespeichert, sodass die Originaltabelle ersetzt wird.

 

Die Aktion "DB ausführen"

Die Aktion "DB ausführen" ist ein leistungsstarker Mechanixmus, um Datenbankdaten zu ändern. Mit dieser Aktion können Sie Daten mit Hilfe von SQL-Anweisungen aktualisieren und speichern. Eine Anleitung zur Verwendung dieser Aktion finden Sie im Abschnitt Seitendesign | Datenbank | Die Aktion "DB ausführen".

 

Speichern verknüpfter Tabellen

Um zu definieren, wie verknüpfte Tabellen gespeichert werden sollen, klicken Sie auf die Schaltfläche Beziehungen icAdditionalDialog. Daraufhin wird das Dialogfeld "Einstellungen zum Speichern von Datenbankspalten" aufgerufen, in dem die verknüpften Tabellen angezeigt werden. In der Auswahlliste der einzelnen verknüpften Tabellen haben Sie die Wahl zwischen den folgenden Optionen: (i) Ersetzen aller Tabellenzeilen der verknüpften Tabelle; (ii) Speichern nur der Änderungen in der verknüpften Tabelle; (iii) Keine Speicherung von Änderungen in der verknüpften Tabelle.

 

Berücksichtigen Sie bei der Auswahl der gewünschten Option alle Primär- - Sekundärschlüsselbeziehungen zwischen der Haupttabelle und den damit verknüpften Tabellen.

 

Die Speichereinstellungen zu der verknüpften Tabelle einer Datenbank-Seitenquelle können auch im Fenster "Seitenquellen" über das Kontextmenü der Seitenquelle aufgerufen werden.

 

Filtern der zu speichernden Spalten

Wählen Sie im Kontextmenü von $DB Root-Nodes den Befehl Spalten filtern, um das Dialogfeld "Einstellungen zum Speichern von Datenbanken" (Abbildung unten) aufzurufen und wählen Sie aus, welche Spalten aktualisiert oder eingefügt werden sollen.

 

MTDSaveDBColumns

In diesem Dialogfeld werden die Spalten der Datenbank-Seitenquelle angezeigt. Sie können festlegen, welche Spalten aktualisiert werden können oder eingefügte Werte erhalten können. (Aktualisierungen beziehen sich auf geänderte Daten in vorhandenen Zeilenelementen; eingefügte Werte beziehen sich auf Daten in neu hinzugefügten Zeilenelementen.) Standardmäßig werden die Optionen Einfügen und Aktualisieren für die einzelnen Spalten immer paarweise aktiviert. Wenn Sie für die Optionen Einfügen und Aktualisieren jedoch unterschiedliche Optionen für eine Zeile für definieren möchten, aktivieren Sie das Kontrollkästchen Separate Filtereinstellungen für Einfüge- und Aktualisierungsanweisungen verwenden. Attribute mit leeren Werten können in der DB in NULL-Werte konvertiert werden, indem Sie das Kontrollkästchen NULL der jeweiligen Spalte aktivieren. Beachten Sie, dass fehlende Attribute immer als NULL gespeichert werden.

 

Spalten, die nicht aktualisiert werden können (weil sie benutzerdefiniert sind, einen festen Wert haben oder berechnet werden) verfügen nicht über die Kontrollkästchen Einfügen, Aktualisieren, NULL. In der Abbildung oben kann die Spalte ID nicht aktualisiert werden, weil sie feste Werte enthält. Deaktivieren Sie die Spalten, die nicht aktualisiert werden sollen.

 

Sie können festlegen, in welcher Reihenfolge Lösungen, Aktualisierungen und Einfügungen vorgenommen werden sollen, indem Sie die gewünschte Reihenfolge in der Auswahlliste am unteren Rand des Dialogfelds auswählen.

 

Wenn Sie die Speichereinstellungen zurücksetzen möchten, so dass alle Spalten aktualisiert werden, klicken Sie auf die Schaltfläche Auf Standardeinstellungen zurücksetzen.

 

Informationen zu OriginalRowSet (Originalzeilengruppe)

Damit Daten bearbeitet und gespeichert werden können, muss die Struktur der Seitenquelle auch ein OriginalRowSet-Element enthalten, das eine Kopie des Elements RowSet ist. Die Originaldaten werden im Element OriginalRowSet gespeichert, während bearbeitete Daten im Element RowSet gespeichert werden. Wenn die Seitenquelle gespeichert wird, wird der Unterschied zwischen der OriginalRowSet- und der RowSet-Struktur berechnet und die Seitenquelle wird anhand dieser Unterschiede aktualisiert. Wenn die Änderung erfolgreich durchgeführt werden konnte, so werden die geänderten Daten in OriginalRowSet kopiert, sodass OriginalRowSet die neu gespeicherten DB-Daten enthält und der Vorgang kann wiederholt werden.

 

Beachten Sie die folgenden Punkte:

 

Das Element OriginalRowSet wird in der Struktur der Datenbank-Seitenquelle standardmäßig nicht erstellt. Um es zu erstellen, klicken Sie mit der rechten Maustaste auf den Root Node der Seitenquelle und schalten Sie den Befehl Originalzeilengruppe erstellen ein.

Der Befehl Originalzeilengruppe erstellen ist für Root Nodes vom Typ "Datenbank" (DB) aktiv. Es handelt sich um einen Ein/Aus-Befehl, der eine OriginalRowSet-Datenstruktur, die die Originaldaten der Seitenquelle enthält, erstellt bzw. entfernt.

Bis zu dem Zeitpunkt, zu dem die geänderten Daten in der DB gespeichert werden, werden die Originaldaten der DB in der OriginalRowSet-Struktur beibehalten. Auf diese Art wird sichergestellt, dass die Original-Datenbankdaten in der Struktur weiterhin verfügbar sind.

Um die Originaldaten einer geänderten, aber noch nicht gespeicherten DB-Zeile abzurufen, verwenden Sie die XPath-Funktion mt-db-original-row.

 

Transaktionen mit "Commit" speichern

Eine andere Methode, Daten in einer DB zu speichern ist, eine unabhängige Transaktion zu beginnen und diese mit "Commit" zu speichern. DB-Transaktionen stehen in Form von Aktionen für Seiten- und Steuerelementaktionen zur Verfügung.

 

Informationen zu DB-Transaktionen

Für jeden DB-Aufruf, für den eine Transaktion erforderlich ist, wird automatisch eine erstellt und anschließend geschlossen. Dies ist in einigen Konfigurationen eventuell nicht wünschenswert. Angenommen, Sie haben zwei DB-Seitenquellen, die einzeln zusammen aktualisiert werden sollen: Wenn beide Tabellen erfolgreich gespeichert wurden, so wird die Transaktion in die DB übernommen, andernfalls erfolgt ein Rollback. Zu diesem Zweck können Transaktionen auf einer Verbindungsbasis erstellt werden.

 

Wenn Sie eine Transaktion beginnen, verwenden alle DB-Operationen, die zur selben DB-Verbindung gehören, diese Transaktion.

 

Bei Verwendung einer Commit-Transaktion werden die Änderungen außerhalb Ihrer Transaktionsumgebung sichtbar. Änderungen können mit Rollback rückgängig gemacht werden. In diesem Fall sind die Änderungen, selbst wenn Sie Ihre Seitenquelle gespeichert haben, nach Durchführung eines Rollback nicht sichtbar! Beachten Sie, dass jede nicht abgeschlossene Transaktion (jede Transaktion, die nicht mit Commit übernommen oder mit Rollback rückgängig gemacht wurde) bei Erreichen des Endes der Aktionsstruktur automatisch mit Rollback rückgängig gemacht wird! Im Meldungsfenster wird dann eine entsprechende Warnung angezeigt.

 

Beachten Sie bitte, dass sich dieses Verhalten zwar auf explizite Transaktionsaktionen bezieht, aber auch für alle DB-Operationen gilt, die dieselbe Verbindung wie die Transaktion verwenden.

 

 

© 2018-2024 Altova GmbH