Freigeben über


Deklarieren der ODBC-Version der Anwendung

Bevor eine Anwendung eine Verbindung zuweist, muss das SQL_ATTR_ODBC_VERSION Umgebungsattribut festgelegt werden. Dieses Attribut gibt an, dass die Anwendung bei Verwendung der folgenden Elemente die ODBC 2.x- oder ODBC 3.x-Spezifikationbefolgt:

  • 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-Typbezeichner
    SQL_C_DATE SQL_C_TYPE_DATE
    SQL_C_TIME SQL_C_TYPE_TIME
    SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP
  • CatalogName-Argumentin SQLTables. In ODBC 2.x werden die Wild Karte zeichen ("%" und "_") im Argument CatalogName buchstäblich behandelt. In ODBC 3.x werden sie als wild Karte Zeichen behandelt. Daher kann eine Anwendung, die auf die ODBC 2.x-Spezifikation folgt, diese nicht als Wild Karte Zeichen verwenden und nicht escapen, wenn sie als Literale verwendet werden. Eine Anwendung, die der ODBC 3.x-Spezifikation folgt, kann diese als Wild Karte Zeichen verwenden oder diese 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 Standardscompliance.

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.