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

SQL Anywhere 12.0.0 (Deutsch) » UltraLite - .NET-Programmierung » Einführung in die UltraLite.NET-Entwicklung

 

Transaktionen verwalten

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 Autocommitmodus, 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);
// Carry out transaction operations here
txn.Commit();
UltraLite-Isolationsstufe

UltraLite unterstützt nur das IsolationLevel.ReadUncommitted-Mitglied 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 ULConnection-Klasse und ULTransaction-Klasse.