Changements de comportement

Les modifications comportementales sont les modifications pour lesquelles la syntaxe de l’interface reste la même, mais la sémantique a changé. Pour ces modifications, les fonctionnalités utilisées dans ODBC 2.x se comporte différemment de la même fonctionnalité dans ODBC 3.x.

Indique si une application présente ODBC 2.comportement x ou ODBC 3.Le comportement x est déterminé par l’attribut d’environnement SQL_ATTR_ODBC_VERSION. Cette valeur 32 bits est définie sur SQL_OV_ODBC2 pour exposer ODBC 2.comportement x et SQL_OV_ODBC3 pour exposer ODBC 3.comportement x .

L’attribut d’environnement SQL_ATTR_ODBC_VERSION est défini par un appel à SQLSetEnvAttr. Une fois qu’une application appelle SQLAllocHandle pour allouer un handle d’environnement, elle doit appelerimmédiatement SQLSetEnvAttr pour définir le comportement qu’elle présente. (Par conséquent, il existe un nouvel état d’environnement pour décrire le handle d’environnement dans un état alloué, mais sans version.) Pour plus d’informations, consultez l’annexe B : Tables de transition d’état ODBC.

Une application indique le comportement qu’elle affiche avec l’attribut d’environnement SQL_ATTR_ODBC_VERSION, mais l’attribut n’a aucun effet sur la connexion de l’application avec odbc 2.x ou ODBC 3.pilote x . ODBC 3.l’application x peut se connecter à odbc 2.x ou 3.pilote x , quel que soit le paramètre de l’attribut d’environnement.

ODBC 3.Les applications x ne doivent jamais appeler SQLAllocEnv. Par conséquent, si le Gestionnaire de pilotes reçoit un appel à SQLAllocEnv, il reconnaît l’application en tant qu’ODBC 2.x application.

L’attribut SQL_ATTR_ODBC_VERSION affecte trois aspects différents d’un ODBC 3.Comportement du pilote x :

  • Codes SQLSTATE

  • Types de données pour la date, l’heure et l’horodatage

  • L’argument CatalogName dans SQLTables accepte les modèles de recherche dans ODBC 3.x, mais pas dans ODBC 2.X

Le paramètre de l’attribut d’environnement SQL_ATTR_ODBC_VERSION n’affecte pas SQLSetParam ou SQLBindParam. SQLColAttribute n’est pas également affecté par ce bit. Bien que SQLColAttribute retourne des attributs affectés par la version d’ODBC (type de date, précision, échelle et longueur), le comportement prévu est déterminé par la valeur de l’argument FieldIdentifier . Lorsque FieldIdentifier est égal à SQL_DESC_TYPE, SQLColAttribute retourne odbc 3.codes x pour la date, l’heure et l’horodatage ; lorsque FieldIdentifier est égal à SQL_COLUMN_TYPE, SQLColAttribute retourne ODBC 2.codes x pour la date, l’heure et l’horodatage.

Cette section contient les rubriques suivantes :