Deklarieren der ODBC-Version der Anwendung
Bevor eine Anwendung eine Verbindung zuweist, muss sie das Umgebungsattribut SQL_ATTR_ODBC_VERSION setzen. Dieses Attribut gibt an, dass die Anwendung bei Verwendung der folgenden Elemente die ODBC 2.x- oder ODBC 3.x-Spezifikation befolgt:
SQLSTATEs. Viele SQLSTATE-Werte unterscheiden sich in ODBC 2.x und ODBC 3.x.
Bezeichner für Datums-, Uhrzeit- und Zeitstempeltypen. In der folgenden Tabelle sind die Typbezeichner für Datums-, Uhrzeit- und Zeitstempeldaten in ODBC 2.x und ODBC 3.x aufgeführt.
ODBC 2.x ODBC 3.x SQL-Typenbezeichner SQL_DATE SQL_TYPE_DATE SQL_TIME SQL_TYPE_TIME SQL_TIMESTAMP SQL_TYPE_TIMESTAMP C-Typenbezeichner SQL_C_DATE SQL_C_TYPE_DATE SQL_C_TIME SQL_C_TYPE_TIME SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP CatalogName Argumente in SQLTables. In ODBC 2.x werden die Platzhalterzeichen („%“ und „_“) im Argument CatalogName buchstäblich behandelt. In ODBC 3.x werden sie als Platzhalterzeichen behandelt. Daher kann eine Anwendung, die die ODBC 2.x-Spezifikation befolgt, diese Zeichen nicht als Platzhalter verwenden und entschlüsselt sie nicht, wenn sie als Literale verwendet werden. Eine Anwendung, die sich an die ODBC 3.x-Spezifikation hält, kann diese Zeichen als Platzhalter verwenden oder sie entschlüsseln und als Literale verwenden. Weitere Informationen finden Sie unter Argumente in Katalogfunktionen.
Der ODBC 3.x-Treiber-Manager und ODBC 3.x-Treiber überprüfen die Version der ODBC-Spezifikation, auf die eine Anwendung geschrieben und entsprechend reagiert. Wenn die Anwendung beispielsweise der ODBC 2.x-Spezifikation folgt und SQLExecute aufruft, bevor SQLPrepare aufgerufen wird, gibt der ODBC 3.x-Treiber-Manager SQLSTATE S1010 (Funktionssequenzfehler) zurück. Wenn die Anwendung der ODBC 3.x-Spezifikation folgt, gibt der Treiber-Manager SQLSTATE HY010 (Funktionssequenzfehler) zurück. Weitere Informationen finden Sie unter Abwärtskompatibilität und Standardkonformität.
Wichtig
Anwendungen, die der ODBC 3.x-Spezifikation folgen, müssen bedingten Code verwenden, um beim Arbeiten mit ODBC 2.x-Treibern keine neuen Funktionen für ODBC 3.x zu verwenden. ODBC 2.x-Treiber unterstützen keine neuen Funktionen für ODBC 3.x, nur weil die Anwendung deklariert, dass sie der ODBC 3.x-Spezifikation folgt. Darüber hinaus unterstützen ODBC 3.x-Treiber keine neuen Funktionen für ODBC 3.x, nur weil die Anwendung deklariert, dass sie der ODBC 2.x-Spezifikation folgt.