Wenn Sie den Inhalt einer Datenbank mit INSERT-, DELETE- oder UPDATE-Anweisungen ändern, werden diese Änderungen erst festgeschrieben, nachdem die Datenbank eine COMMIT-Anweisung von Net.Data empfangen hat. Wenn ein Fehler auftritt, sendet Net.Data eine ROLLBACK-Anweisung an die Datenbank, die alle Änderungen seit der letzten COMMIT-Operation zurücknimmt.
Wie Net.Data die COMMIT-Anweisung und die etwaige ROLLBACK-Anweisung sendet, hängt davon ab, wie Sie TRANSACTION_SCOPE festlegen und ob Sie die COMMIT-Anweisung explizit im Makro angeben. Zulässige Werte für TRANSACTION_SCOPE sind MULTIPLE und SINGLE.
Gibt an, daß Net.Data alle SQL-Anweisungen vor dem Absetzen einer COMMIT- und etwaigen ROLLBACK-Anweisung ausführt. Net.Data sendet die COMMIT-Anweisung am Ende der Anforderung, und wenn jede SQL-Anweisung erfolgreich abgesetzt wird, schreibt die COMMIT-Anweisung alle Änderungen in der Datenbank fest. Wenn durch eine der Anweisungen ein Fehler zurückgegeben wird, setzt Net.Data eine ROLLBACK-Anweisung ab, die die Datenbank auf ihren ursprünglichen Status zurücksetzt. MULTIPLE ist der Standardwert, wenn TRANSACTION_SCOPE nicht festgelegt wird.
Sie aktivieren diese COMMIT-Methode, indem Sie TRANSACTION_SCOPE auf MULTIPLE setzen.
Beispiel:
@DTW_ASSIGN(TRANSACTION_SCOPE,"MULTIPLE")
Gibt an, daß Net.Data nach jeder erfolgreichen SQL-Anweisung eine COMMIT-Anweisung absetzt. Wenn die SQL-Anweisung einen Fehler zurückgibt, wird eine ROLLBACK-Anweisung abgesetzt. Die Angabe SINGLE für TRANSACTION_SCOPE stellt eine sofortige Datenbankänderung sicher. Allerdings kann eine Änderung später mit Hilfe einer ROLLBACK-Anweisung nicht widerrufen werden.
Sie aktivieren diese COMMIT-Methode, indem Sie TRANSACTION_SCOPE auf SINGLE setzen. Beispiel:
@DTW_ASSIGN(TRANSACTION_SCOPE,"SINGLE")
Sie können mit der SQL-Anweisung COMMIT am Ende jeder beliebigen SQL-Anweisung in Ihrem Makro eine COMMIT-Anweisung absetzen. Wenn Sie als Anwendungsentwickler die Standardeinstellung MULTIPLE für TRANSACTION_SCOPE beibehalten und wenn Sie COMMIT-Anweisungen am Ende der Anweisungsgruppen absetzen, die als Transaktion in Frage kommen, haben Sie volle Kontrolle über das COMMIT- und ROLLBACK-Verhalten in Ihrer Anwendung.
Zum Absetzen einer SQL-Anweisung COMMIT können Sie eine Funktion definieren, die Sie an einem beliebigen Punkt in Ihrem HTML-Block aufrufen können:
%FUNCTION(DTW_SQL) user_commit() {
commit
%}
...
%HTML {
...
@user_commit()
...
%}