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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » Einführung in die Programmierung mit SQL Anywhere » SQL in Anwendungen verwenden » Transaktionen in Anwendungen steuern

 

Cursor und Transaktionen

Im Allgemeinen wird ein Cursor geschlossen, wenn ein COMMIT ausgeführt wird. Es gibt zwei Ausnahmen für dieses Verhalten.

  • Die Datenbankoption close_on_endtrans ist auf Off gesetzt.

  • Ein Cursor wird mit WITH HOLD geöffnet, was der Standard bei Open Client und JDBC ist.

Trifft einer dieser beiden Fälle zu, bleibt der Cursor bei COMMIT geöffnet.

ROLLBACK und Cursor

Beim Zurücksetzen einer Transaktion wird der Cursor geschlossen, außer wenn er mit WITH HOLD geöffnet wurde. Dem Inhalt eines Cursors können Sie nach einem Zurücksetzen nicht vertrauen.

Der projektierte ISO SQL3-Standard legt fest, dass bei einem Zurücksetzen alle Cursor geschlossen werden sollen. Sie können dieses Verhalten erzwingen, indem Sie die Option ansi_close_cursors_on_rollback auf On setzen.

Savepoints

Wenn eine Transaktion bis zu einem Savepoint zurückgesetzt wird und ansi_close_cursors_on_rollback auf On gesetzt ist, wird jeder nach dem SAVEPOINT geöffnete Cursor geschlossen (sogar die Cursor, die mit WITH HOLD geöffnet wurden).

Cursor und Isolationsstufe

Sie können die Isolationsstufe für eine Verbindung während einer Transaktion setzen, indem Sie die Anweisung SET OPTION verwenden, um die Option isolation_level zu ändern. Diese Änderung wirkt sich jedoch nicht auf geöffnete Cursor aus.

Ein Snapshot aller Zeilen, die zur Snapshot-Startzeit festgeschrieben sind, ist sichtbar, wenn die WITH HOLD-Klausel mit den Isolationsstufen snapshot, statement-snapshot und readonly-statement-snapshot verwendet wird. Ebenfalls sichtbar sind alle Änderungen, die von der aktuellen Verbindung seit dem Start der Transaktion, innerhalb der der Cursor geöffnet war, abgeschlossen wurden. Weitere Hinweise zu unterstützten Isolationsstufen finden Sie unter Isolationsstufen und Konsistenz und isolation_level-Option [Datenbank] [Kompatibilität].