Abhängig von der verwendeten Schnittstelle und davon, wie Sie das Autocommit-Verhalten steuern, verhält sich der Autocommit-Modus leicht unterschiedlich.
Der Autocommit-Modus kann auf zwei Arten implementiert werden:
Clientseitiges Autocommit Wenn eine Anwendung Autocommit verwendet, sendet die Clientbibliothek eine COMMIT-Anweisung nach jeder ausgeführten SQL-Anweisung.
ADO.NET-, ADO/OLE DB, ODBC- und PHP-Anwendungen steuern das Festschreibeverhalten von der Clientseite.
Serverseitiges Autocommit Wenn eine Anwendung den chained-Modus deaktiviert, schreibt der Datenbankserver die Ergebnisse der einzelnen SQL-Anweisungen fest. Dieses Verhalten wird, im Fall von JDBC implizit, durch die Datenbankoption chained gesteuert.
Embedded SQL-, JDBC- und Open Client-Anwendungen verändern das serverseitige Festschreibeverhalten (sie legen z.B. die chained-Option fest).
Es gibt einen Unterschied zwischen clientseitigem und serverseitigem Autocommit im Fall von zusammengesetzten Anweisungen wie gespeicherten Prozeduren und Triggern. Für den Client ist eine gespeicherte Prozedur eine einzelne Anweisung, und daher sendet Autocommit eine einzelne COMMIT-Anweisung, nachdem die gesamte Prozedur ausgeführt wurde. Aus der Perspektive des Datenbankservers kann die gespeicherte Prozedur aus vielen SQL-Anweisungen bestehen. Daher schreibt ein serverseitiges Autocommit die Ergebnisse der einzelnen SQL-Anweisungen innerhalb der Prozedur fest.
Kombinieren Sie die Einstellung der Option chained nicht mit der Autocommit-Option in Ihrer ADO.NET-, ADO/OLE DB-, ODBC- oder PHP-Anwendung.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |