Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » UltraLite - .NET-Programmierung » UltraLite.NET-Anwendungsentwicklung

 

Transaktionsverwaltung

UltraLite ermöglicht die Transaktionsverarbeitung, damit die Integrität der Daten in Ihrer Datenbank gewährleistet ist. Eine Transaktion ist eine logische Arbeitseinheit. Entweder wird eine ganze Transaktion oder keine der Anweisungen in der Transaktion ausgeführt.

Standardmäßig arbeitet UltraLite.NET im Autocommit-Modus, sodass jede Einfügung, Aktualisierung oder Löschung als eigenständige Transaktion ausgeführt wird. Nachdem ein Vorgang abgeschlossen wurde, wird die Änderung in der Datenbank definitiv eingetragen.

Um Transaktionen mit Multi-Thread-Anweisungen zu verwenden, müssen Sie ein ULTransaction-Klassenobjekt erstellen, indem Sie ULConnection.BeginTransaction aufrufen. Wenn die Anwendung z.B. Geld zwischen zwei Konten überträgt, muss sowohl die Subtraktion vom Quellkonto als auch die Addition zum Zielkonto als eigenständiger Vorgang ausgeführt werden. Andernfalls darf keine der beiden Anweisungen abgeschlossen werden.

Wenn die Verbindung eine gültige Transaktion ausgeführt hat, müssen Sie die ULTransaction.Commit-Anweisung ausführen, um die Transaktion abzuschließen und die Änderungen in der Datenbank festzuschreiben. Wenn die Gruppe der Aktualisierungen abgebrochen werden soll, führen Sie die ULTransaction.Rollback-Anweisung aus, um den Vorgang abzubrechen und alle Anweisungen der Transaktion zurückzusetzen. Wenn eine Transaktion festgeschrieben oder zurückgesetzt wurde, wechselt die Verbindung bis zum nächsten Aufruf von ULConnection.BeginTransaction zurück in den Autocommit-Modus.

Das folgende Codefragment zeigt z.B., wie Sie eine Transaktion einrichten, die mehrere Vorgänge umfasst (und das standardmäßige Autocommit-Verhalten vermeidet):

// Assuming an already open connection named  conn
ULTransaction txn = conn.BeginTransaction(IsolationLevel.ReadUncommitted);
// Perform transaction operations here
txn.Commit();
Hinweis

UltraLite unterstützt nur die ReadCommitted- und ReadUncommitted-Mitglieder der IsolationLevel-Enumeration.

Einige SQL-Aweisungen - v.a. Anweisungen, die die Datenbankstruktur verändern - bewirken, dass alle offenen Transaktionen festgeschrieben werden. Beispiele für SQL-Anweisungen, die laufende Transaktionen automatisch festschreiben, sind CREATE TABLE und ALTER TABLE.

 Siehe auch