Matrice de compatibilité

Le tableau suivant décrit la compatibilité des types d’applications et de pilotes définis précédemment dans cette section.

Type d'application

et version
ODBC 32 bits

Pilote 2.x
ODBC 3.x

driver
Pilote ODBC 3.8 Pilote iso et open group conforme
Application 16 bits, toute version Compatible Compatible Compatible Compatible
Application Pure 2.x Compatible Compatible Compatible Non compatible[3]
Application recompilée pure 2.x Compatible Compatible[1] Compatible[1] Non compatible[3]
Application Unicode pure 2.x Compatible Compatible[1] Compatible[1] Non compatible[3]
Pure Open Group et application compatible ISO Non compatible Compatible[2] Compatible[2] Compatible[2]
Application Pure 3.0 Non compatible Compatible Compatible Non compatible[4]
Application Pure 3.5 Non compatible Compatible Compatible Non compatible[4]
Application Pure 3.8 (ou ultérieure) Non compatible [5] Non compatible [5] Compatible Non compatible [4]
Application remplacée Compatible Compatible Compatible Non compatible[3]

[1] L’application doit recompiler à l’aide d’en-têtes ODBC 3.5 (ou ultérieur) avec l’option UNICODE (s’il s’agit d’une application Unicode) et doit définir ODBCVER sur 0x0250.

[2] L’application doit compiler à l’aide d’en-têtes ODBC 3.5 (ou version ultérieure) et établir un lien avec le Gestionnaire de pilotes ODBC. Il doit également définir l’indicateur d’en-tête ODBC_STD.

[3] Cette configuration peut échouer, car il existe des fonctionnalités dans ODBC 2.x qui ne figurent pas dans les normes, telles que les signets.

[4] Cette configuration peut échouer, car il existe des fonctionnalités dans ODBC 3.x qui ne sont pas dans les normes, telles que les signets.

[5] Cette configuration peut échouer, car il existe des fonctionnalités dans ODBC 3.8 qui ne se trouvent pas dans les pilotes ODBC 2.x ou 3.x, telles que les types de données C spécifiques au pilote dans ODBC.

Compatibilité du Gestionnaire de pilotes

Une application ODBC 3.0 qui doit fonctionner avec toutes les versions de Driver Manager doit effectuer les opérations suivantes au démarrage :

  • Allouez un handle d’environnement.

  • Définissez l’attribut d’environnement SQL_ATTR_ODBC_VERSION sur SQL_OV_ODBC3_80. Si le Gestionnaire de pilotes retourne SQL_ERROR, le Gestionnaire de pilotes est antérieur à 3,8. Réinitialisez SQL_ATTR_ODBC_VERSION sur SQL_OV_ODBC3 ou SQL_OV_ODBC2, le cas échéant, pour correspondre au Gestionnaire de pilotes.

  • Allouez un handle de connexion.

  • Établir une connexion.

  • Appelez SQLGetInfo pour SQL_DRIVER_ODBC_VER pour déterminer la version du pilote. Si le pilote est un pilote ODBC 3.8, vous pouvez utiliser des types C spécifiques au pilote. Sinon, n’utilisez pas de types de données C spécifiques au pilote.

Notez qu’une application ODBC 3.x recompilée peut utiliser des fonctionnalités ODBC 3.8 autres que les types C spécifiques au pilote sans spécifier SQL_OV_ODBC3_80 pour SQL_ATTR_ODBC_VERSION. Il s’agit d’une application ODBC 2.x recompilée à l’aide des fonctionnalités ODBC 3.x.

Utilisation de SQLCancelHandle dans une application compatible avec tous les gestionnaires de pilotes

Étant donné que la fonction SQLCancelHandle n’est pas prise en charge dans les gestionnaires de pilotes qui ont été publiés avant Windows 7, une application ne peut pas être chargée dans des versions antérieures de Windows si elle appelle DIRECTEMENT SQLCancelHandle . Pour utiliser toutes les versions des gestionnaires de pilotes et utiliser SQLCancelHandle sur les nouvelles versions de Windows, une application doit appeler INDIRECTEMENT SQLCancelHandle à l’aide de LoadLibrary et getProcAddress.

Voir aussi

Nouveautés d’ODBC 3.8