Share via


Types de données spécifique du pilote, types de descripteurs, types d’informations, types de diagnostics et attributs

Les pilotes peuvent allouer des valeurs spécifiques au pilote pour les éléments suivants :

  • Indicateurs de type de données SQL Utilisés dans ParameterType dans SQLBindParameter et Dans DataType dans SQLGetTypeInfo et retournés par SQLColAttribute, SQLColumns, SQLDescribeCol, SQLGetTypeInfo, SQLDescribeParam, SQLProcedureColumns et SQLSpecialColumns.

  • Champs de descripteur Utilisés dans FieldIdentifier dans SQLColAttribute, SQLGetDescField et SQLSetDescField.

  • Champs de diagnostic Utilisés dans DiagIdentifier dans SQLGetDiagField et SQLGetDiagRec.

  • Types d’informations Utilisés dans InfoType dans SQLGetInfo.

  • attributs Connecter ion et d’instruction Elles sont utilisées dans Attribute dans SQLGet Connecter Attr, SQLGetStmtAttr, SQLSet Connecter Attr et SQLSetStmtAttr.

Pour chacun de ces éléments, il existe deux ensembles de valeurs : les valeurs réservées pour une utilisation par ODBC et les valeurs réservées pour une utilisation par les pilotes. Avant d’implémenter des valeurs spécifiques au pilote, un enregistreur de pilotes doit demander une valeur pour chaque type, champ ou attribut spécifique au pilote à partir d’Open Group. Pour le développement de nouveaux pilotes, utilisez la plage décrite dans le tableau ci-dessous. Le Gestionnaire de pilotes ODBC 3.8 ne génère pas d’erreur si une valeur inconnue n’est pas utilisée dans la plage décrite ci-dessous. Toutefois, les versions ultérieures du Gestionnaire de pilotes peuvent générer une erreur si des valeurs inconnues sont reçues qui ne figurent pas dans la plage.

Quand l’une de ces valeurs est passée à une fonction ODBC, le pilote doit case activée si la valeur est valide. Les pilotes retournent SQLSTATE HYC00 (fonctionnalité facultative non implémentée) pour les valeurs spécifiques au pilote qui s’appliquent à d’autres pilotes.

À compter d’ODBC 3.8, les enregistreurs de pilotes peuvent allouer des attributs spécifiques au pilote dans une plage réservée.

Remarque

Le Gestionnaire de pilotes ODBC 3.8 ne valide ni n’applique ces plages pour la compatibilité descendante. Toutefois, une version ultérieure du Gestionnaire de pilotes peut les appliquer.

Type d'attribut Type de données ODBC Base de plages spécifique au pilote Limite de plage spécifique au pilote Constante ODBC pour la base de plage de valeurs spécifique au pilote
Indicateurs de type de données SQL SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_SQL_TYPE_BASE
Champs de descripteur SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DESCRIPTOR_BASE
Champs de diagnostic SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DIAGNOSTIC_BASE
Types d’informations SQLUSMALLINT 0x4000 0x7FFF SQL_DRIVER_INFO_TYPE_BASE
Attributs de connexion SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_CONNECT_ATTR_BASE
Attributs d’instruction SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_STATEMENT_ATTR_BASE

Remarque

Les types de données spécifiques au pilote, les champs de descripteur, les champs de diagnostic, les types d’informations, les attributs d’instruction et les attributs de connexion doivent être décrits dans la documentation du pilote. Quand l’une de ces valeurs est passée à une fonction ODBC, le pilote doit case activée si la valeur est valide. Les pilotes retournent SQLSTATE HYC00 (fonctionnalité facultative non implémentée) pour les valeurs spécifiques au pilote qui s’appliquent à d’autres pilotes.

Les valeurs de base sont définies pour faciliter le développement de pilotes. Par exemple, des attributs de diagnostic spécifiques au pilote peuvent être définis au format suivant :

SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1