Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I följande tabell beskrivs kompatibiliteten för de typer av program och drivrutiner som definierats tidigare i det här avsnittet.
| Apptyp och version |
32-bit ODBC 2.x-drivrutin |
ODBC 3.x driver |
ODBC 3.8-drivrutin | ISO- och Open Group-kompatibel drivrutin |
|---|---|---|---|---|
| 16-bitarsprogram, valfri version | Kompatibel | Kompatibel | Kompatibel | Kompatibel |
| Pure 2.x-applikation | Kompatibel | Kompatibel | Kompatibel | Inte kompatibel[3] |
| Pure 2.x omkompilerat program | Kompatibel | Kompatibel[1] | Kompatibel[1] | Inte kompatibel[3] |
| Pure 2.x Unicode-applikation | Kompatibel | Kompatibel[1] | Kompatibel[1] | Inte kompatibel[3] |
| Pure Open Group och ISO-kompatibelt program | Inte kompatibel | Kompatibel[2] | Kompatibel[2] | Kompatibel[2] |
| Pure 3.0-applikation | Inte kompatibel | Kompatibel | Kompatibel | Inte kompatibel[4] |
| Pure 3.5-applikation | Inte kompatibel | Kompatibel | Kompatibel | Inte kompatibel[4] |
| Pure 3.8 (eller högre) applikation | Inte kompatibel [5] | Inte kompatibel [5] | Kompatibel | Inte kompatibel [4] |
| Ersatt applikation | Kompatibel | Kompatibel | Kompatibel | Inte kompatibel[3] |
[1] Programmet måste kompilera om med ODBC 3.5-huvuden (eller senare) med UNICODE-alternativet (om det är ett Unicode-program) och måste ange ODBCVER till 0x0250.
[2] Programmet måste kompilera med ODBC 3.5-huvuden (eller senare) och länka till ODBC Driver Manager. Den måste också ange rubrikflaggan ODBC_STD.
[3] Den här konfigurationen kan eventuellt misslyckas eftersom det finns funktioner i ODBC 2.x som inte finns i standarderna, till exempel bokmärken.
[4] Den här konfigurationen kan eventuellt misslyckas eftersom det finns funktioner i ODBC 3.x som inte finns i standarderna, till exempel bokmärken.
[5] Den här konfigurationen kan eventuellt misslyckas eftersom det finns funktioner i ODBC 3.8 som inte finns i ODBC 2.x- eller 3.x-drivrutiner, till exempel drivrutinsspecifika C-datatyper i ODBC.
Drivrutinshanterarens kompatibilitet
Ett ODBC 3.0-program som måste fungera med alla Driver Manager-versioner bör göra följande vid start:
Allokera ett miljöhandtag.
Ange SQL_ATTR_ODBC_VERSION miljöattributet till SQL_OV_ODBC3_80. Om Drivrutinshanteraren returnerar SQL_ERROR är Drivrutinshanteraren äldre än 3,8. Återställ SQL_ATTR_ODBC_VERSION till SQL_OV_ODBC3 eller SQL_OV_ODBC2, beroende på vad som är lämpligt, för att motsvara drivrutinshanteraren.
Allokera ett anslutningshandtag.
Upprätta en anslutning.
Anropa SQLGetInfo för SQL_DRIVER_ODBC_VER för att fastställa drivrutinsversionen. Om drivrutinen är en ODBC 3.8-drivrutin kan du använda drivrutinsspecifika C-typer. Annars ska du inte använda drivrutinsspecifika C-datatyper.
Observera att ett omkompilerat ODBC 3.x-program kan använda andra ODBC 3.8-funktioner än drivrutinsspecifika C-typer utan att ange SQL_OV_ODBC3_80 för SQL_ATTR_ODBC_VERSION. Detta liknar ett omkompilerat ODBC 2.x-program med odbc 3.x-funktioner.
Använda SQLCancelHandle i ett program som är kompatibelt med alla drivrutinshanterare
Eftersom SQLCancelHandle-funktionen inte stöds i Drivrutinshanterare som släpptes före Windows 7 kan inte ett program läsas in i äldre versioner av Windows om det anropar SQLCancelHandle direkt. Om du vill arbeta med alla versioner av Driver Managers och använda SQLCancelHandle i nya versioner av Windows bör ett program anropa SQLCancelHandle indirekt med hjälp av LoadLibrary och GetProcAddress.