Mit SQLSetConnectAttr können Sie die Isolationsstufe der Transaktion für eine Verbindung festlegen. Folgende Merkmale bestimmen die von SQL Anywhere bereitgestellte Transaktions-Isolationsstufe:
SQL_TXN_READ_UNCOMMITTED Die Isolationsstufe wird auf "0" gesetzt. Wenn dieser Attributwert festgelegt wird, werden alle Daten, die aus Änderungen durch andere Benutzern stammen, isoliert, und Änderungen anderer Benutzer sind nicht sichtbar. Das erneute Ausführen der Leseanweisung wird von anderen beeinflusst. Wiederholbare Lesevorgänge werden nicht unterstützt. Es handelt sich hierbei um den Standardwert für die Isolationsstufe.
SQL_TXN_READ_COMMITTED Die Isolationsstufe wird auf 1 gesetzt. Wenn dieser Attributwert festgelegt wird, werden die Daten, die aus Änderungen durch andere Benutzern stammen, nicht isoliert, und Änderungen anderer Benutzer sind sichtbar. Das erneute Ausführen der Leseanweisung wird von anderen beeinflusst. Wiederholbare Lesevorgänge werden nicht unterstützt.
SQL_TXN_REPEATABLE_READ Die Isolationsstufe wird auf 2 gesetzt. Wenn dieser Attributwert festgelegt wird, werden alle Daten, die aus Änderungen durch andere Benutzern stammen, isoliert, und Änderungen anderer Benutzer sind nicht sichtbar. Das erneute Ausführen der Leseanweisung wird von anderen beeinflusst. Wiederholbare Lesevorgänge werden unterstützt.
SQL_TXN_SERIALIZABLE Die Isolationsstufe wird auf 3 gesetzt. Wenn dieser Attributwert festgelegt wird, werden alle Daten, die aus Änderungen durch andere Benutzern stammen, isoliert, und Änderungen anderer Benutzer sind nicht sichtbar. Das erneute Ausführen der Leseanweisung wird von anderen nicht beeinflusst. Wiederholbare Lesevorgänge werden unterstützt.
SA_SQL_TXN_SNAPSHOT Die Isolationsstufe wird auf "snapshot" gesetzt. Wenn dieser Attributwert gesetzt ist, wird für die gesamte Transaktion eine einzelne Ansicht der Datenbank bereitgestellt.
SA_SQL_TXN_STATEMENT_SNAPSHOT Die Isolationsstufe wird auf "statement-snapshot" gesetzt. Wenn dieser Attributwert gesetzt ist, wird eine geringere Konsistenz bereitgestellt, als bei der Snapshot-Isolation. Er kann jedoch in Fällen nützlich sein, in denen lange ausführende Transaktionen dazu führen, dass durch das Speichern der Versionen zu viel Speicherplatz in der temporären Datei belegt wird.
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT Die Isolationsstufe wird auf "readonly-statement-snapshot" gesetzt. Wenn dieser Attributwert gesetzt ist, wird eine geringere Konsistenz bereitgestellt als bei einer Anweisungs-Snapshot-Isolation, doch die Möglichkeit von Aktualisierungskonflikten wird vermieden. Daher ist sie am besten für die Portierung von Anwendungen geeignet, die ursprünglich dazu gedacht waren, unter anderen Isolationsstufen zu laufen.
Weitere Hinweise finden Sie unter SQLSetConnectAttr in der Microsoft-Dokumentation ODBC Programmer's Reference.
Das folgende Codefragment verwendet die Snapshot-Isolationsstufe:
SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc ); SQLSetConnectAttr( dbc, SQL_ATTR_TXN_ISOLATION, SA_SQL_TXN_SNAPSHOT, SQL_IS_UINTEGER ); |
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 |