Freigeben über


Unterstützung für Isolationsstufen mithilfe des ODBC-Treibers für DB2

Der Microsoft ODBC-Treiber für DB2 bietet Flexibilität bei Problemen mit Isolationsstufen und Transaktionsstatus. Die ODBC SQLSetConnectAttr-Funktion wird verwendet, um die Isolationsstufe festzulegen, die für eine Verbindung verwendet werden soll. Diese Funktion wird aufgerufen, wobei der Attributparameter auf SQL_ATTR_TXN_ISOLATION und der ValuePtr-Parameter auf einen ganzzahligen Wert verweist, der die angeforderte Isolationsstufe angibt. Dieser ganzzahlige Wert ist eine 32-Bit-Bit-Bit-Maske, die die Transaktionsisolationsstufe für die aktuelle Verbindung festlegt.

Die zulässigen Werte für die Isolationsebene (der ValuePtr-Parameter beim Aufrufen von SQLSetConnectAttr) können durch Aufrufen von SQLGetInfo mit InfoType gleich SQL_TXN_ISOLATION_OPTION bestimmt werden. In der folgenden Tabelle sind die zulässigen Werte für die Isolationsstufe unter Verwendung des ODBC-Treibers für DB2 aufgeführt, der mit Host Integration Server bereitgestellt wird.

ODBC-Isolationsebene-Attribut BESCHREIBUNG
SQL_TXN_READ_COMMITTED Wenn dieser Attributwert festgelegt ist, werden alle Daten isoliert, die von anderen gelesen werden, und Änderungen, die von anderen vorgenommen wurden, können nicht sichtbar werden. Die erneute Ausführung der READ-Anweisung wird von anderen beeinflusst. Ein wiederholbarer Lesevorgang wird nicht unterstützt.

Dies ist der Standardwert für die Isolationsstufe.

Diese Isolationsstufe heißt in der IBM DB2-Dokumentation auch Cursor Stability (CS).
SQL_TXN_READ_UNCOMMITTED Wenn dieser Attributwert festgelegt ist, isoliert er keine Daten, die von Anderen gelesen werden, und Änderungen, die von anderen vorgenommen werden, können angezeigt werden. Die erneute Ausführung der READ-Anweisung wird von anderen beeinflusst. Ein wiederholbarer Lesevorgang wird nicht unterstützt.

Diese Isolationsstufe heißt in der IBM DB2-Dokumentation Uncommitted Read (UR).
SQL_TXN_REPEATABLE_READ Wenn dieser Attributwert festgelegt ist, werden alle Daten isoliert, die von anderen gelesen werden, und änderungen, die von anderen vorgenommen werden, können nicht angezeigt werden. Die erneute Ausführung der READ-Anweisung wird von anderen beeinflusst. Ein wiederholbarer Lesevorgang wird unterstützt.

Diese Isolationsstufe heißt in der IBM DB2-Dokumentation Read Stability (RS).
SQL_TXN_SERIALIZABLE Wenn dieser Attributwert festgelegt ist, werden alle Daten isoliert, die von anderen gelesen werden, und Änderungen, die von anderen vorgenommen wurden, können nicht sichtbar werden. Die erneute Ausführung der READ-Anweisung wird von anderen nicht beeinflusst. Ein wiederholbarer Lesevorgang wird unterstützt.

Diese Isolationsstufe heißt in der IBM DB2-Dokumentation Repeatable Read (RR).

Das attribut SQL_ATTR_TXN_ISOLATION kann nur festgelegt werden, wenn keine offenen Transaktionen für die Verbindung vorhanden sind. Eine Anwendung muss SQLEndTran aufrufen, um alle geöffneten Transaktionen für eine Verbindung zu committen oder rollbacken, bevor SQLSetConnectAttr mit dieser Option aufgerufen wird.

Einige Verbindungsattribute unterstützen das Ersetzen eines ähnlichen Werts, wenn die Datenquelle den in ValuePtr angegebenen Wert nicht unterstützt. In solchen Fällen gibt der Treiber SQL_SUCCESS_WITH_INFO und SQLSTATE 01S02 (Optionswert geändert) zurück. Um den ersetzten Wert zu ermitteln, ruft eine Anwendung SQLGetConnectAttr auf.