SQLGetStmtOption-Zuordnung
Wenn eine Anwendung SQLGetStmtOption für einen ODBC 3.x-Treiber aufruft, der dies nicht unterstützt, wird der Aufruf von
SQLGetStmtOption(hstmt, fOption, pvParam)
ergibt sich wie folgt:
Wenn fOption eine ODBC-definierte Anweisungsoption angibt, die eine Zeichenfolge zurückgibt, ruft der Treiber-Manager auf.
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)
Wenn fOption eine ODBC-definierte Anweisungsoption angibt, die einen ganzzahligen 32-Bit-Wert zurückgibt, ruft der Treiber-Manager auf.
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, 0, NULL)
Wenn fOption eine vom Treiber definierte Anweisungsoption angibt, ruft der Treiber-Manager auf.
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)
In den vorherigen drei Fällen wird das StatementHandle-Argument auf den Wert in hstmt, das Attributargument auf den Wert in fOption und das ValuePtr-Argument auf den gleichen Wert wie pvParam festgelegt.
Für ODBC-definierte Zeichenfolgenverbindungsoptionen legt der Treiber-Manager das BufferLength-Argument im Aufruf von SQLGetConnectAttr auf die vordefinierte maximale Länge (SQL_MAX_OPTION_STRING_LENGTH) fest. Für eine Verbindungsoption ohne Zeichenfolge ist BufferLength auf 0 festgelegt.
Die Option SQL_GET_BOOKMARK-Anweisung wurde in ODBC 3.x veraltet. Damit ein ODBC 3.x-Treiber mit ODBC 2.x-Anwendungen funktioniert, die SQL_GET_BOOKMARK verwenden, muss er SQL_GET_BOOKMARK unterstützen. Damit ein ODBC 3.x-Treiber mit ODBC 2.x-Anwendungen funktioniert, muss er das Festlegen SQL_USE_BOOKMARKS auf SQL_UB_ON unterstützen und Lesezeichen mit fester Länge verfügbar machen. Wenn ein ODBC 3.x-Treiber nur Lesezeichen mit variabler Länge und nicht Lesezeichen fester Länge unterstützt, muss SQLSTATE HYC00 (Optionales Feature nicht implementiert) zurückgegeben werden, wenn eine ODBC 2.x-Anwendung versucht, SQL_USE_BOOKMARKS auf SQL_UB_ON festzulegen.
Bei einem ODBC 3.x-Treiber überprüft der Treiber-Manager nicht mehr, ob option zwischen SQL_STMT_OPT_MIN und SQL_STMT_OPT_MAX liegt oder größer als SQL_CONNECT_OPT_DRVR_START ist. Der Treiber muss dies überprüfen.