Delen via


ODBC-versie van de toepassing declareren

Voordat een toepassing een verbinding toewijst, moet deze het kenmerk SQL_ATTR_ODBC_VERSION omgeving instellen. Dit kenmerk geeft aan dat de toepassing de ODBC 2.x - of ODBC 3.x-specificatie volgt wanneer u de volgende items gebruikt:

  • SQLSTATEs. Veel SQLSTATE-waarden verschillen in ODBC 2.x en ODBC 3.x.

  • Datum-, tijd- en tijdstempeltype-id's. In de volgende tabel ziet u de type-id's voor datum-, tijd- en tijdstempelgegevens in ODBC 2.x en ODBC 3.x.

    ODBC 2.x ODBC 3.x
    SQL-type-identifiers
    SQL_DATE SQL_TYPE_DATE
    SQL_TIME SQL_TYPE_TIME
    SQL_TIMESTAMP SQL_TYPE_TIMESTAMP
    C-type-identificaties
    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 worden de jokertekens ("%" en "_") in het argument CatalogName letterlijk behandeld. In ODBC 3.x worden ze behandeld als jokertekens. Daarom kan een toepassing die de ODBC 2.x-specificatie volgt deze niet gebruiken als jokertekens en ontsnapt ze niet wanneer ze als letterlijke tekens worden gebruikt. Een toepassing die volgt op de ODBC 3.x-specificatie , kan deze gebruiken als jokertekens of als escapetekens en deze gebruiken als letterlijke tekens. Zie Argumenten in Catalogusfuncties voor meer informatie.

De ODBC 3.x Driver Manager en ODBC 3.x stuurprogramma's controleren de versie van de ODBC-specificatie waarop een toepassing is geschreven en reageren dienovereenkomstig. Als de toepassing bijvoorbeeld de ODBC 2.x-specificatie volgt en SQLExecute aanroept voordat SQLPrepare wordt aangeroepen, retourneert ODBC 3.x Driver Manager SQLSTATE S1010 (functiereeksfout). Als de toepassing de ODBC 3.x-specificatie volgt, retourneert Driver Manager SQLSTATE HY010 (functiereeksfout). Zie Compatibiliteit met eerdere versies en standaarden voor meer informatie.

Belangrijk

Toepassingen die voldoen aan de ODBC 3.x-specificatie moeten voorwaardelijke code gebruiken om te voorkomen dat functies worden gebruikt die nieuw zijn voor ODBC 3.x bij het werken met ODBC 2.x-stuurprogramma's . ODBC 2.x-stuurprogramma's bieden geen ondersteuning voor functionaliteit die nieuw is voor ODBC 3.x , omdat de toepassing declareert dat deze voldoet aan de ODBC 3.x-specificatie . Bovendien bieden ODBC 3.x-stuurprogramma's geen ondersteuning meer voor functionaliteit die nieuw is in ODBC 3.x , omdat de toepassing verklaart dat deze voldoet aan de ODBC 2.x-specificatie .