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 - SQL-Benutzerhandbuch » Datenbanken erstellen » Transaktionen und Isolationsstufen verwenden » Isolationsstufen und Konsistenz

 

Isolationsstufe von einer für ODBC aktivierten Anwendung aus einstellen

ODBC-Anwendungen rufen SQLSetConnectAttr mit dem Attribut SQL_ATTR_TXN_ISOLATION auf sowie ValuePtr, das entsprechend der Isolationsstufe festgelegt ist:

Der Parameter ValuePtr
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
Isolationsstufe über ODBC ändern

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.

Beispiel

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