ODBC-Anwendungen rufen SQLSetConnectAttr mit dem Attribut SQL_ATTR_TXN_ISOLATION auf sowie ValuePtr, das entsprechend der Isolationsstufe festgelegt ist:
ValuePtr | Isolationsstufe |
---|---|
SQL_TXN_READ_UNCOMMITTED | 0 |
SQL_TXN_READ_COMMITTED | 1 |
SQL_TXN_REPEATABLE_READ | 2 |
SQL_TXN_SERIALIZABLE | 3 |
SA_SQL_TXN_SNAPSHOT | snapshot |
SA_SQL_TXN_STATEMENT_SNAPSHOT | statement-snapshot |
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT | readonly-statement-snapshot |
Sie können die Isolationsstufe Ihrer Verbindung via ODBC ändern, indem Sie die Funktion SQLSetConnectOption in der Bibliothek ODBC32.dll verwenden.
Die Funktion SQLSetConnectOption verwendet drei Parameter: Den Wert des ODBC-Verbindungs-Handles, die Tatsache, dass Sie die Isolationsstufe einstellen wollen und den Wert, der der Isolationsstufe entspricht. Diese Werte werden in der folgenden Tabelle aufgeführt:
Zeichenfolge | Wert |
---|---|
SQL_TXN_ISOLATION | 108 |
SQL_TXN_READ_UNCOMMITTED | 1 |
SQL_TXN_READ_COMMITTED | 2 |
SQL_TXN_REPEATABLE_READ | 4 |
SQL_TXN_SERIALIZABLE | 8 |
SA_SQL_TXN_SNAPSHOT | 32 |
SA_SQL_TXN_STATEMENT_SNAPSHOT | 64 |
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT | 128 |
Verwenden Sie die SET OPTION-Anweisung nicht, um eine Isolationsstufe von einer ODBC-Anwendung aus zu ändern. Da der ODBC-Treiber die Anweisungen nicht syntaktisch analysiert, wird die Ausführung einer Anweisung in ODBC nicht vom ODBC-Treiber erkannt. Dies könnte zu unerwartetem Sperrverhalten führen.
Der folgende Funktionsaufruf setzt den Wert der Verbindung "My Connection" auf die Isolationsstufe 2:
SQLSetConnectOption( MyConnection.hDbc, SQL_TXN_ISOLATION, SQL_TXN_REPEATABLE_READ ) |
ODBC verwendet die Isolationsfunktion, um die jeweiligen Sperrenoptionen der Datenbank zu unterstützen. So können Sie zum Beispiel im PowerBuilder das Sperrenattribut des Transaktionsobjektes verwenden, um bei der Verbindung mit der Datenbank die Isolationsstufe einzustellen. Beim Sperrenattribut handelt es sich um eine wie folgt eingestellte Zeichenfolge:
SQLCA.lock = "RU" |
Die Sperre ist nur zum Zeitpunkt der CONNECT-Anweisung gültig. Änderungen am Sperrenattribut nach CONNECT haben keine Auswirkung auf die Verbindung.
Isolationsstufen während einer Transaktion ändern
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 |