Partager via


Fonction SQLGetInfo

Conformité
Version introduite : Conformité aux normes ODBC 1.0 : ISO 92

Résumé
SQLGetInfo retourne des informations générales sur le pilote et la source de données associées à une connexion.

Syntaxe

  
SQLRETURN SQLGetInfo(  
     SQLHDBC         ConnectionHandle,  
     SQLUSMALLINT    InfoType,  
     SQLPOINTER      InfoValuePtr,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   StringLengthPtr);  

Arguments

ConnectionHandle
[Entrée] Handle de connexion.

InfoType
[Entrée] Type d’informations.

InfoValuePtr
[Sortie] Pointeur vers une mémoire tampon dans laquelle retourner les informations. Selon l’InfoType demandé, les informations retournées seront l’une des suivantes : chaîne de caractères null, valeur SQLUSMALLINT, masque de bits SQLUINTEGER, indicateur SQLUINTEGER, valeur binaire SQLUINTEGER ou valeur SQLULEN.

Si l’argument InfoType est SQL_DRIVER_HDESC ou SQL_DRIVER_HSTMT, l’argument InfoValuePtr est à la fois d’entrée et de sortie. (Pour plus d’informations, consultez les descripteurs SQL_DRIVER_HDESC ou SQL_DRIVER_HSTMT plus loin dans cette description de fonction.)

Si InfoValuePtr a la valeur NULL, StringLengthPtr retourne toujours le nombre total d’octets (à l’exclusion du caractère de fin null pour les données de caractères) disponibles pour retourner dans la mémoire tampon vers laquelle InfoValuePtr pointe.

BufferLength
[Entrée] Longueur de la mémoire tampon *InfoValuePtr . Si la valeur dans *InfoValuePtr n’est pas une chaîne de caractères ou si InfoValuePtr est un pointeur null, l’argument BufferLength est ignoré. Le pilote suppose que la taille de *InfoValuePtr est SQLUSMALLINT ou SQLUINTEGER, en fonction de l’InfoType. Si *InfoValuePtr est une chaîne Unicode (lors de l’appel de SQLGetInfoW), l’argument BufferLength doit être un nombre pair ; si ce n’est pas le cas, SQLSTATE HY090 (chaîne ou longueur de mémoire tampon non valide) est retourné.

StringLengthPtr
[Sortie] Pointeur vers une mémoire tampon dans laquelle renvoyer le nombre total d’octets (à l’exception du caractère de fin null pour les données de caractère) disponibles dans *InfoValuePtr.

Pour les données de caractère, si le nombre d’octets disponibles à retourner est supérieur ou égal à BufferLength, les informations contenues dans *InfoValuePtr sont tronquées en octets BufferLength moins la longueur d’un caractère d’arrêt null et sont terminées par null par le pilote.

Pour tous les autres types de données, la valeur de BufferLength est ignorée et le pilote suppose que la taille de *InfoValuePtr est SQLUSMALLINT ou SQLUINTEGER, selon l’InfoType.

Retours

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR ou SQL_INVALID_HANDLE.

Diagnostics

Lorsque SQLGetInfo retourne SQL_ERROR ou SQL_SUCCESS_WITH_INFO, une valeur SQLSTATE associée peut être obtenue en appelant SQLGetDiagRec avec un HandleType de SQL_HANDLE_DBC et un Handle de ConnectionHandle. Le tableau suivant répertorie les valeurs SQLSTATE généralement retournées par SQLGetInfo et explique chacune d’elles dans le contexte de cette fonction ; la notation « (DM) » précède les descriptions de SQLSTATEs retournées par le Gestionnaire de pilotes. Le code de retour associé à chaque valeur SQLSTATE est SQL_ERROR, sauf indication contraire.

SQLSTATE Error Description
01000 Avertissement général Message d’information spécifique au pilote. (La fonction retourne SQL_SUCCESS_WITH_INFO.)
01004 Données de chaîne, tronquées à droite La mémoire tampon *InfoValuePtr n’était pas assez grande pour renvoyer toutes les informations demandées. Par conséquent, l’information a été tronquée. La longueur des informations demandées dans leur forme non structurée est retournée dans *StringLengthPtr. (La fonction retourne SQL_SUCCESS_WITH_INFO.)
08003 Connexion non ouverte (DM) Le type d’informations demandées dans InfoType nécessite une connexion ouverte. Parmi les types d’informations réservés par ODBC, seuls SQL_ODBC_VER peuvent être retournés sans connexion ouverte.
08S01 Échec de la liaison de communication La liaison de communication entre le pilote et la source de données à laquelle le pilote a été connecté a échoué avant que la fonction n’ait terminé le traitement.
HY000 Erreur générale Une erreur s’est produite pour laquelle il n’y avait pas de SQLSTATE spécifique et pour laquelle aucun SQLSTATE spécifique à l’implémentation n’a été défini. Le message d’erreur retourné par SQLGetDiagRec dans la mémoire tampon *MessageText décrit l’erreur et sa cause.
HY001 Erreur d’allocation de mémoire Le pilote n’a pas pu allouer la mémoire nécessaire pour prendre en charge l’exécution ou l’achèvement de la fonction.
HY010 Erreur de séquence de fonction (DM) SQLExecute, SQLExecDirect ou SQLMoreResults a été appelé pour l’instruction StatementHandle et a retourné SQL_PARAM_DATA_AVAILABLE. Cette fonction a été appelée avant la récupération des données pour tous les paramètres diffusés.
HY013 Erreur de gestion de la mémoire L’appel de fonction n’a pas pu être traité, car les objets de mémoire sous-jacents n’ont pas pu être consultés, peut-être en raison de conditions de mémoire insuffisantes.
HY024 Valeur d’attribut non valide (DM) L’argument InfoType était SQL_DRIVER_HSTMT, et la valeur pointée par InfoValuePtr n’était pas un handle d’instruction valide.

(DM) L’argument InfoType a été SQL_DRIVER_HDESC et la valeur pointée par InfoValuePtr n’était pas un handle descripteur valide.
HY090 Chaîne ou longueur de mémoire tampon non valide (DM) La valeur spécifiée pour l’argument BufferLength était inférieure à 0.

(DM) La valeur spécifiée pour BufferLength était un nombre impair et *InfoValuePtr était d’un type de données Unicode.
HY096 Type d’informations hors plage La valeur spécifiée pour l’argument InfoType n’était pas valide pour la version d’ODBC prise en charge par le pilote.
HY117 La connexion est suspendue en raison d’un état de transaction inconnu. Seules les fonctions de déconnexion et de lecture seule sont autorisées. (DM) Pour plus d’informations sur l’état suspendu, consultez FONCTION SQLEndTran.
HYC00 Champ facultatif non implémenté La valeur spécifiée pour l’argument InfoType était une valeur spécifique au pilote qui n’est pas prise en charge par le pilote.
HYT01 Délai d’attente de la connexion expiré Le délai d’expiration de la connexion a expiré avant que la source de données réponde à la demande. La période de délai d’expiration de la connexion est définie via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Le pilote ne prend pas en charge cette fonction (DM) Le pilote qui correspond à ConnectionHandle ne prend pas en charge la fonction.

Commentaires

Les types d’informations actuellement définis sont affichés dans « Types d’informations », plus loin dans cette section ; on s’attend à ce que d’autres soient définies pour tirer parti de différentes sources de données. Une plage de types d’informations est réservée par ODBC ; les développeurs de pilotes doivent réserver des valeurs pour leur propre utilisation spécifique au pilote à partir d’Open Group. SQLGetInfo n’effectue pas de conversion Unicode ou de thunking (voir Annexe A : Codes d’erreur ODBC de la référence du programmeur ODBC) pour les InfoTypes définis par le pilote. Pour plus d’informations, consultez Types de données spécifiques aux pilotes, Types de descripteurs, Types d’informations, Types de diagnostic et Attributs. Le format des informations retournées dans *InfoValuePtr dépend de l’InfoType demandé. SQLGetInfo retourne des informations dans l’un des cinq formats différents :

  • Chaîne de caractères terminée par null

  • Une valeur SQLUSMALLINT

  • Masque de bits SQLUINTEGER

  • Valeur SQLUINTEGER

  • Valeur binaire SQLUINTEGER

Le format de chacun des types d’informations suivants est indiqué dans la description du type. L’application doit convertir la valeur retournée dans *InfoValuePtr en conséquence. Pour obtenir un exemple de la façon dont une application peut récupérer des données à partir d’un masque de bits SQLUINTEGER, consultez « Exemple de code ».

Un pilote doit retourner une valeur pour chaque type d’informations défini dans les tableaux suivants. Si un type d’informations ne s’applique pas au pilote ou à la source de données, le pilote retourne l’une des valeurs répertoriées dans le tableau suivant.

Type d’informations Valeur
Chaîne de caractères (« Y » ou « N ») "N"
Chaîne de caractères (pas « Y » ou « N ») Chaîne vide
SQLUSMALLINT 0
Masque de bits SQLUINTEGER ou valeur binaire SQLUINTEGER 0L

Par exemple, si une source de données ne prend pas en charge les procédures, SQLGetInfo retourne les valeurs répertoriées dans le tableau suivant pour les valeurs d’InfoType associées aux procédures.

InfoType Valeur
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM Chaîne vide

SQLGetInfo retourne SQLSTATE HY096 (valeur d’argument non valide) pour les valeurs d’InfoType qui se trouvent dans la plage de types d’informations réservés à une utilisation par ODBC, mais qui ne sont pas définies par la version d’ODBC prise en charge par le pilote. Pour déterminer la version d’ODBC avec laquelle un pilote est conforme, une application appelle SQLGetInfo avec le type d’informations SQL_DRIVER_ODBC_VER. SQLGetInfo retourne SQLSTATE HYC00 (fonctionnalité facultative non implémentée) pour les valeurs d’InfoType qui se trouvent dans la plage de types d’informations réservés à une utilisation spécifique au pilote, mais qui ne sont pas prises en charge par le pilote.

Tous les appels à SQLGetInfo nécessitent une connexion ouverte, sauf lorsque l’InfoType est SQL_ODBC_VER, qui retourne la version du Gestionnaire de pilotes.

Types d’informations

Cette section répertorie les types d’informations pris en charge par SQLGetInfo. Les types d’informations sont regroupés catégoriquement et répertoriés par ordre alphabétique. Les types d’informations qui ont été ajoutés ou renommés pour ODBC 3*.x* sont également répertoriés.

Informations sur le pilote

Les valeurs suivantes de l’argument InfoType retournent des informations sur le pilote ODBC, telles que le nombre d’instructions actives, le nom de la source de données et le niveau de conformité aux normes d’interface :

SQL_ACTIVE_ENVIRONMENTS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_DATA_SOURCE_NAME
SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDBC
SQL_DRIVER_HDESC
SQL_DRIVER_HENV
SQL_DRIVER_HLIB
SQL_DRIVER_HSTMT
SQL_DRIVER_NAME
SQL_DRIVER_ODBC_VER
SQL_DRIVER_VER
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_FILE_USAGE
SQL_GETDATA_EXTENSIONS
SQL_INFO_SCHEMA_VIEWS
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_DRIVER_CONNECTIONS
SQL_ODBC_INTERFACE_CONFORMANCE
SQL_ODBC_STANDARD_CLI_CONFORMANCE
SQL_ODBC_VER
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_ROW_UPDATES
SQL_SEARCH_PATTERN_ESCAPE
SQL_SERVER_NAME
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2

Notes

Lors de l’implémentation de SQLGetInfo, un pilote peut améliorer les performances en réduisant le nombre de fois où des informations sont envoyées ou demandées du serveur.

Informations sur le produit SGBD

Les valeurs suivantes de l’argument InfoType retournent des informations sur le produit SGBD, telles que le nom et la version du SGBD :

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

Informations sur la source de données

Les valeurs suivantes de l’argument InfoType retournent des informations sur la source de données, telles que les caractéristiques de curseur et les fonctionnalités de transaction :

SQL_ACCESSIBLE_PROCEDURES
SQL_ACCESSIBLE_TABLES
SQL_BOOKMARK_PERSISTENCE
SQL_CATALOG_TERM
SQL_COLLATION_SEQ
SQL_CONCAT_NULL_BEHAVIOR
SQL_CURSOR_COMMIT_BEHAVIOR
SQL_CURSOR_ROLLBACK_BEHAVIOR
SQL_CURSOR_SENSITIVITY
SQL_DATA_SOURCE_READ_ONLY
SQL_DEFAULT_TXN_ISOLATION
SQL_DESCRIBE_PARAMETER

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_ACTIVE_TXN
SQL_NEED_LONG_DATA_LEN
SQL_NULL_COLLATION
SQL_PROCEDURE_TERM
SQL_SCHEMA_TERM
SQL_SCROLL_OPTIONS
SQL_TABLE_TERM
SQL_TXN_CAPABLE
SQL_TXN_ISOLATION_OPTION
SQL_USER_NAME

SQL pris en charge

Les valeurs suivantes de l’argument InfoType retournent des informations sur les instructions SQL prises en charge par la source de données. La syntaxe SQL de chaque fonctionnalité décrite par ces types d’informations est la syntaxe SQL-92. Ces types d’informations ne décrivent pas de manière exhaustive l’intégralité de la grammaire SQL-92. Au lieu de cela, ils décrivent les parties de la grammaire pour lesquelles les sources de données offrent généralement différents niveaux de prise en charge. Plus précisément, la plupart des instructions DDL dans SQL-92 sont couvertes.

Les applications doivent déterminer le niveau général de grammaire prise en charge à partir du type d’informations SQL_SQL_CONFORMANCE et utiliser les autres types d’informations pour déterminer les différences par rapports au niveau de conformité des normes indiquées.

SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ALTER_TABLE
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_CATALOG_LOCATION
SQL_CATALOG_NAME
SQL_CATALOG_NAME_SEPARATOR
SQL_CATALOG_USAGE
SQL_COLUMN_ALIAS
SQL_CORRELATION_NAME
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_DDL_INDEX
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA

SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_EXPRESSIONS_IN_ORDERBY
SQL_GROUP_BY
SQL_IDENTIFIER_CASE
SQL_IDENTIFIER_QUOTE_CHAR
SQL_INDEX_KEYWORDS
SQL_INSERT_STATEMENT
SQL_INTEGRITY
SQL_KEYWORDS
SQL_LIKE_ESCAPE_CLAUSE
SQL_NON_NULLABLE_COLUMNS
SQL_OJ_CAPABILITIES
SQL_ORDER_BY_COLUMNS_IN_SELECT
SQL_OUTER_JOINS
SQL_PROCEDURES
SQL_QUOTED_IDENTIFIER_CASE
SQL_SCHEMA_USAGE
SQL_SPECIAL_CHARACTERS
SQL_SQL_CONFORMANCE
SQL_SUBQUERIES
SQL_UNION

Limites SQL

Les valeurs suivantes de l’argument InfoType retournent des informations sur les limites appliquées aux identificateurs et aux clauses dans les instructions SQL, telles que la longueur maximale des identificateurs et le nombre maximal de colonnes dans une liste de sélection. Les limitations peuvent être imposées par le pilote ou la source de données.

SQL_MAX_BINARY_LITERAL_LEN
SQL_MAX_CATALOG_NAME_LEN
SQL_MAX_CHAR_LITERAL_LEN
SQL_MAX_COLUMN_NAME_LEN
SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAX_COLUMNS_IN_INDEX
SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAX_COLUMNS_IN_SELECT
SQL_MAX_COLUMNS_IN_TABLE
SQL_MAX_CURSOR_NAME_LEN

SQL_MAX_IDENTIFIER_LEN
SQL_MAX_INDEX_SIZE
SQL_MAX_PROCEDURE_NAME_LEN
SQL_MAX_ROW_SIZE
SQL_MAX_ROW_SIZE_INCLUDES_LONG
SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_STATEMENT_LEN
SQL_MAX_TABLE_NAME_LEN
SQL_MAX_TABLES_IN_SELECT
SQL_MAX_USER_NAME_LEN

Informations sur la fonction scalaire

Les valeurs suivantes de l’argument InfoType retournent des informations sur les fonctions scalaires prises en charge par la source de données et le pilote. Pour plus d’informations sur les fonctions scalaires, consultez Annexe E : Fonctions scalaires.

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

Informations de conversion

Les valeurs suivantes de l’argument InfoType retournent une liste des types de données SQL vers lesquels la source de données peut convertir le type de données SQL spécifié avec la fonction scalaire CONVERT :

SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH

SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR

Types d’informations ajoutés pour ODBC 3.x

Les valeurs suivantes de l’argument InfoType ont été ajoutées pour ODBC 3.x :

SQL_ACTIVE_ENVIRONMENTS
SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_CATALOG_NAME
SQL_COLLATION_SEQ
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_CURSOR_SENSITIVITY
SQL_DDL_INDEX
SQL_DESCRIBE_PARAMETER
SQL_DM_VER

SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDESC
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA
SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_INFO_SCHEMA_VIEWS
SQL_INSERT_STATEMENT
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_IDENTIFIER_LEN
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2
SQL_XOPEN_CLI_YEAR

Types d’informations renommés pour ODBC 3.x

Les valeurs suivantes de l’argument InfoType ont été renommées pour ODBC 3.x.

Ancien nom Nouveau nom
SQL_ACTIVE_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_OWNER_NAME_LEN SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_QUALIFIER_NAME_LEN SQL_MAX_CATALOG_NAME_LEN
SQL_ODBC_SQL_OPT_IEF SQL_INTEGRITY
SQL_OWNER_TERM SQL_SCHEMA_TERM
SQL_OWNER_USAGE SQL_SCHEMA_USAGE
SQL_QUALIFIER_LOCATION SQL_CATALOG_LOCATION
SQL_QUALIFIER_NAME_SEPARATOR SQL_CATALOG_NAME_SEPARATOR
SQL_QUALIFIER_TERM SQL_CATALOG_TERM
SQL_QUALIFIER_USAGE SQL_CATALOG_USAGE

Types d’informations déconseillés dans ODBC 3.x

Les valeurs suivantes de l’argument InfoType ont été dépréciées dans ODBC 3.x. Les pilotes ODBC 3.x doivent continuer à prendre en charge ces types d’informations à des fins de compatibilité descendante avec les applications ODBC 2.x. (Pour plus d’informations sur ces types, consultez Prise en charge de SQLGetInfo à l’annexe G : Instructions de pilote pour la compatibilité descendante.)

SQL_FETCH_DIRECTION
SQL_LOCK_TYPES
SQL_ODBC_API_CONFORMANCE
SQL_ODBC_SQL_CONFORMANCE

SQL_POS_OPERATIONS
SQL_POSITIONED_STATEMENTS
SQL_SCROLL_CONCURRENCY
SQL_STATIC_SENSITIVITY

Descriptions des types d’informations

Le tableau suivant répertorie par ordre alphabétique chaque type d’informations, la version d’ODBC dans laquelle il a été introduit et sa description.

Type d’informations ODBC Version Description
SQL_ACCESSIBLE_PROCEDURES 1.0 Chaîne de caractères : « Y » si l’utilisateur peut exécuter toutes les procédures retournées par SQLProcedures ; « N » s’il peut y avoir des procédures retournées que l’utilisateur ne peut pas exécuter.
SQL_ACCESSIBLE_TABLES 1.0 Chaîne de caractères : « Y » si l’utilisateur dispose de privilèges SELECT garantis pour toutes les tables retournées par SQLTables ; « N » s’il peut y avoir des tables retournées auxquelles l’utilisateur ne peut pas accéder.
SQL_ACTIVE_ENVIRONMENTS 3.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal d’environnements actifs que le pilote peut prendre en charge. S’il n’y a pas de limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.
SQL_AGGREGATE_FUNCTIONS 3.0 Un masque de bits SQLUINTEGER qui prend en charge la prise en charge des fonctions d’agrégation :
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours toutes ces options prises en charge.
SQL_ALTER_DOMAIN 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction ALTER DOMAIN , comme défini dans SQL-92, pris en charge par la source de données. Un pilote de niveau complet SQL-92 retourne toujours tous les masques de bits. Une valeur de retour « 0 » signifie que l’instruction ALTER DOMAIN n’est pas prise en charge.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_AD_ADD_DOMAIN_CONSTRAINT = L’ajout d’une contrainte de domaine est pris en charge (niveau complet)
SQL_AD_ADD_DOMAIN_DEFAULT = <modifier la clause> de domaine par défaut de l’ensemble de domaine><est prise en charge (niveau complet)
SQL_AD_CONSTRAINT_NAME_DEFINITION = la clause de <définition de nom de> contrainte est prise en charge pour la contrainte de nommage de domaine (niveau intermédiaire)
SQL_AD_DROP_DOMAIN_CONSTRAINT = <supprimer la clause de> contrainte de domaine est prise en charge (niveau complet)
SQL_AD_DROP_DOMAIN_DEFAULT = <modifier la clause> par défaut de domaine de suppression de domaine><est prise en charge (niveau complet)

Les bits suivants spécifient les attributs> de contrainte pris en charge <si <l’ajout d’une contrainte> de domaine est pris en charge (le SQL_AD_ADD_DOMAIN_CONSTRAINT bit est défini) :
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (niveau complet)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (niveau complet)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (niveau complet)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (niveau complet)
SQL_ALTER_TABLE 2.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction ALTER TABLE prise en charge par la source de données.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_AT_ADD_COLUMN_COLLATION = <ajouter une clause de colonne> est pris en charge, avec la possibilité de spécifier le classement des colonnes (niveau complet) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <ajouter une clause de colonne> est pris en charge, avec la possibilité de spécifier les valeurs par défaut des colonnes (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <ajouter une colonne> est pris en charge (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <ajouter une clause de colonne> est pris en charge, avec la possibilité de spécifier des contraintes de colonne (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <ajouter une clause de contrainte> de table est prise en charge (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <définition de nom de> contrainte est prise en charge pour les contraintes de nommage de colonne et de table (niveau intermédiaire) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <supprimer la colonne> CASCADE est prise en charge (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <modifier la clause> par défaut de colonne de suppression de colonne><est prise en charge (niveau intermédiaire) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <drop column> RESTRICT est pris en charge (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <drop column> RESTRICT est pris en charge (niveau transitoire FIPS) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <modifier la clause> de colonne par défaut de l’ensemble de colonnes><est prise en charge (niveau intermédiaire) (ODBC 3.0)

Les bits suivants spécifient les attributs de contrainte de> prise en charge <si la spécification des contraintes de colonne ou de table est prise en charge (le SQL_AT_ADD_CONSTRAINT bit est défini) :
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (niveau complet) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (niveau complet) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (niveau complet) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (niveau complet) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3.8 Valeur SQLUINTEGER qui indique si le pilote peut exécuter des fonctions de manière asynchrone sur le handle de connexion.

SQL_ASYNC_DBC_CAPABLE = Le pilote peut exécuter des fonctions de connexion de manière asynchrone.
SQL_ASYNC_DBC_NOT_CAPABLE = Le pilote ne peut pas exécuter les fonctions de connexion de manière asynchrone.
SQL_ASYNC_MODE 3.0 Valeur SQLUINTEGER qui indique le niveau de prise en charge asynchrone dans le pilote :

SQL_AM_CONNECTION = L’exécution asynchrone au niveau de la connexion est prise en charge. Tous les handles d’instruction associés à un handle de connexion donné sont en mode asynchrone ou tous en mode synchrone. Un handle d’instruction sur une connexion ne peut pas être en mode asynchrone alors qu’un autre handle d’instruction sur la même connexion est en mode synchrone, et vice versa.
SQL_AM_STATEMENT = L’exécution asynchrone au niveau de l’instruction est prise en charge. Certains handles d’instruction associés à un handle de connexion peuvent être en mode asynchrone, tandis que d’autres handles d’instruction sur la même connexion sont en mode synchrone.
SQL_AM_NONE = Le mode asynchrone n’est pas pris en charge.
SQL_ASYNC_NOTIFICATION 3.8 Valeur SQLUINTEGER qui indique si le pilote prend en charge la notification asynchrone :

SQL_ASYNC_NOTIFICATION_CAPABLE = La notification d’exécution asynchrone est prise en charge par le pilote.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = La notification d’exécution asynchrone n’est pas prise en charge par le pilote.

Il existe deux catégories d’opérations asynchrones ODBC : les opérations asynchrones au niveau de la connexion et les opérations asynchrones au niveau de l’instruction. Si un pilote retourne SQL_ASYNC_NOTIFICATION_CAPABLE, il doit prendre en charge la notification pour toutes les API qu’il peut exécuter de manière asynchrone.
SQL_BATCH_ROW_COUNT 3.0 Masque de bits SQLUINTEGER qui énumère le comportement du pilote par rapport à la disponibilité du nombre de lignes. Les masques de bits suivants sont utilisés avec le type d’informations :

SQL_BRC_ROLLED_UP = Le nombre de lignes pour les instructions INSERT, DELETE ou UPDATE consécutives est regroupé en une seule. Si ce bit n’est pas défini, le nombre de lignes est disponible pour chaque instruction.
SQL_BRC_PROCEDURES = Le nombre de lignes, le cas échéant, est disponible lorsqu’un lot est exécuté dans une procédure stockée. Si le nombre de lignes est disponible, ils peuvent être enrôlés ou disponibles individuellement, en fonction du SQL_BRC_ROLLED_UP bit.
SQL_BRC_EXPLICIT = Le nombre de lignes, le cas échéant, sont disponibles lorsqu’un lot est exécuté directement en appelant SQLExecute ou SQLExecDirect. Si le nombre de lignes est disponible, ils peuvent être enrôlés ou disponibles individuellement, en fonction du SQL_BRC_ROLLED_UP bit.
SQL_BATCH_SUPPORT 3.0 Masque de bits SQLUINTEGER énumérant la prise en charge du pilote pour les lots. Les masques de bits suivants sont utilisés pour déterminer le niveau pris en charge :

SQL_BS_SELECT_EXPLICIT = Le pilote prend en charge les lots explicites qui peuvent avoir des instructions de génération de jeu de résultats.
SQL_BS_ROW_COUNT_EXPLICIT = Le pilote prend en charge les lots explicites qui peuvent avoir des instructions de génération de nombre de lignes.
SQL_BS_SELECT_PROC = Le pilote prend en charge des procédures explicites qui peuvent avoir des instructions de génération de jeu de résultats.
SQL_BS_ROW_COUNT_PROC = Le pilote prend en charge des procédures explicites qui peuvent avoir des instructions de génération de nombre de lignes.
SQL_BOOKMARK_PERSISTENCE 2.0 Masque de bits SQLUINTEGER énumérant les opérations dans lesquelles les signets persistent. Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer dans quelles options les signets persistent :

SQL_BP_CLOSE = Les signets sont valides après qu’une application a appelé SQLFreeStmt avec l’option SQL_CLOSE ou SQLCloseCursor pour fermer le curseur associé à une instruction.
SQL_BP_DELETE = Le signet d’une ligne est valide après la suppression de cette ligne.
SQL_BP_DROP = Les signets sont valides après qu’une application appelle SQLFreeHandle avec un HandleType de SQL_HANDLE_STMT pour supprimer une instruction.
SQL_BP_TRANSACTION = Les signets sont valides après qu’une application valide ou restaure une transaction.
SQL_BP_UPDATE = Le signet d’une ligne est valide une fois qu’une colonne de cette ligne a été mise à jour, y compris les colonnes clés.
SQL_BP_OTHER_HSTMT = Un signet associé à une instruction peut être utilisé avec une autre instruction. Sauf si SQL_BP_CLOSE ou SQL_BP_DROP est spécifié, le curseur de la première instruction doit être ouvert.
SQL_CATALOG_LOCATION 2.0 Valeur SQLUSMALLINT qui indique la position du catalogue dans un nom de table qualifié :

SQL_CL_START
SQL_CL_END
Par exemple, un pilote Xbase retourne SQL_CL_START, car le nom du répertoire (catalogue) se trouve au début du nom de la table, comme dans \EMPDATA\EMP. DBF. Un pilote de serveur ORACLE retourne SQL_CL_END, car le catalogue se trouve à la fin du nom de la table, comme dans ADMIN. EMP@EMPDATA.

Un pilote de niveau complet SQL-92 retourne toujours SQL_CL_START. La valeur 0 est retournée si les catalogues ne sont pas pris en charge par la source de données. Pour déterminer si les catalogues sont pris en charge, une application appelle SQLGetInfo avec le type d’informations SQL_CATALOG_NAME.

Cet InfoType a été renommé pour ODBC 3.0 à partir du SQL_QUALIFIER_LOCATION d’infotype ODBC 2.0.
SQL_CATALOG_NAME 3.0 Chaîne de caractères : « Y » si le serveur prend en charge les noms de catalogue, ou « N » si ce n’est pas le cas.

Un pilote de niveau complet SQL-92 retourne toujours « Y ».
SQL_CATALOG_NAME_SEPARATOR 1.0 Chaîne de caractères : caractère ou caractères que la source de données définit comme séparateur entre un nom de catalogue et l’élément de nom qualifié qui le suit ou le précède.

Une chaîne vide est retournée si les catalogues ne sont pas pris en charge par la source de données. Pour déterminer si les catalogues sont pris en charge, une application appelle SQLGetInfo avec le type d’informations SQL_CATALOG_NAME. Un pilote SQL-92 conforme au niveau complet retourne toujours « ».

Cet InfoType a été renommé pour ODBC 3.0 à partir de l’infotype ODBC 2.0 SQL_QUALIFIER_NAME_SEPARATOR.
SQL_CATALOG_TERM 1.0 Chaîne de caractères avec le nom du fournisseur de la source de données pour un catalogue ; par exemple, « base de données » ou « répertoire ». Cette chaîne peut être en majuscules, inférieures ou mixtes.

Une chaîne vide est retournée si les catalogues ne sont pas pris en charge par la source de données. Pour déterminer si les catalogues sont pris en charge, une application appelle SQLGetInfo avec le type d’informations SQL_CATALOG_NAME. Un pilote SQL-92 conforme au niveau complet retourne toujours le « catalogue ».

Cet InfoType a été renommé pour ODBC 3.0 à partir du SQL_QUALIFIER_TERM d’infotype ODBC 2.0.
SQL_CATALOG_USAGE 2.0 Masque de bits SQLUINTEGER énumérant les instructions dans lesquelles les catalogues peuvent être utilisés.

Les masques de bits suivants sont utilisés pour déterminer où les catalogues peuvent être utilisés :
SQL_CU_DML_STATEMENTS = Les catalogues sont pris en charge dans toutes les instructions de langage de manipulation de données : SELECT, INSERT, UPDATE, DELETE et, si elles sont prises en charge, SELECT FOR UPDATE et les instructions de mise à jour et de suppression positionnées.
SQL_CU_PROCEDURE_INVOCATION = Les catalogues sont pris en charge dans l’instruction d’appel de procédure ODBC.
SQL_CU_TABLE_DEFINITION = Les catalogues sont pris en charge dans toutes les instructions de définition de table : CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE et DROP VIEW.
SQL_CU_INDEX_DEFINITION = Les catalogues sont pris en charge dans toutes les instructions de définition d’index : CREATE INDEX et DROP INDEX.
SQL_CU_PRIVILEGE_DEFINITION = Les catalogues sont pris en charge dans toutes les instructions de définition de privilèges : GRANT et REVOKE.

La valeur 0 est retournée si les catalogues ne sont pas pris en charge par la source de données. Pour déterminer si les catalogues sont pris en charge, une application appelle SQLGetInfo avec le type d’informations SQL_CATALOG_NAME. Un pilote de niveau complet SQL-92 retourne toujours un masque de bits avec tous ces bits définis.

Cet InfoType a été renommé pour ODBC 3.0 à partir de l’infotype ODBC 2.0 SQL_QUALIFIER_USAGE.
SQL_COLLATION_SEQ 3.0 Nom de la séquence de classement. Il s’agit d’une chaîne de caractères qui indique le nom du classement par défaut du jeu de caractères par défaut pour ce serveur (par exemple, « ISO 8859-1 » ou EBCDIC). Si cette valeur est inconnue, une chaîne vide est retournée. Un pilote de niveau complet SQL-92 retourne toujours une chaîne non vide.
SQL_COLUMN_ALIAS 2.0 Chaîne de caractères : « Y » si la source de données prend en charge les alias de colonne ; sinon, « N ».

Un alias de colonne est un autre nom qui peut être spécifié pour une colonne de la liste de sélection à l’aide d’une clause AS. Un pilote conforme au niveau d’entrée SQL-92 retourne toujours « Y ».
SQL_CONCAT_NULL_BEHAVIOR 1.0 Valeur SQLUSMALLINT qui indique comment la source de données gère la concaténation de colonnes de type de données de caractères null avec des colonnes de type de données de type caractère non NULL :
SQL_CB_NULL = Le résultat a une valeur NULL.
SQL_CB_NON_NULL = Le résultat est la concaténation de colonnes non NULL.

Un pilote sql-92 conforme au niveau d’entrée retourne toujours SQL_CB_NULL.
SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_GUID
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR
1.0 Masque de bits SQLUINTEGER. Le masque de bits indique les conversions prises en charge par la source de données avec la fonction scalaire CONVERT pour les données du type nommé dans l’InfoType. Si le masque de bits est égal à zéro, la source de données ne prend pas en charge les conversions à partir de données du type nommé, y compris la conversion vers le même type de données.

Par exemple, pour déterminer si une source de données prend en charge la conversion de données SQL_INTEGER en SQL_BIGINT type de données, une application appelle SQLGetInfo avec l’InfoType de SQL_CONVERT_INTEGER. L’application effectue une opération AND avec le masque de bits et le SQL_CVT_BIGINT retournés. Si la valeur résultante est différente de zéro, la conversion est prise en charge.

Les masques de bits suivants sont utilisés pour déterminer les conversions prises en charge :
SQL_CVT_BIGINT (ODBC 1.0)
SQL_CVT_BINARY (ODBC 1.0)
SQL_CVT_BIT (ODBC 1.0)
SQL_CVT_GUID (ODBC 3.5)
SQL_CVT_CHAR (ODBC 1.0)
SQL_CVT_DATE (ODBC 1.0)
SQL_CVT_DECIMAL (ODBC 1.0)
SQL_CVT_DOUBLE (ODBC 1.0)
SQL_CVT_FLOAT (ODBC 1.0)
SQL_CVT_INTEGER (ODBC 1.0)
SQL_CVT_INTERVAL_YEAR_MONTH (ODBC 3.0)
SQL_CVT_INTERVAL_DAY_TIME (ODBC 3.0)
SQL_CVT_LONGVARBINARY (ODBC 1.0)
SQL_CVT_LONGVARCHAR (ODBC 1.0)
SQL_CVT_NUMERIC (ODBC 1.0)
SQL_CVT_REAL (ODBC 1.0)
SQL_CVT_SMALLINT (ODBC 1.0)
SQL_CVT_TIME (ODBC 1.0)
SQL_CVT_TIMESTAMP (ODBC 1.0)
SQL_CVT_TINYINT (ODBC 1.0)
SQL_CVT_VARBINARY (ODBC 1.0)
SQL_CVT_VARCHAR (ODBC 1.0)
SQL_CONVERT_FUNCTIONS 1.0 Masque de bits SQLUINTEGER énumérant les fonctions de conversion scalaires prises en charge par le pilote et la source de données associée.

Le masque de bits suivant est utilisé pour déterminer les fonctions de conversion prises en charge :
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 Valeur SQLUSMALLINT qui indique si les noms de corrélation de table sont pris en charge :
SQL_CN_NONE = Les noms de corrélation ne sont pas pris en charge.
SQL_CN_DIFFERENT = Les noms de corrélation sont pris en charge, mais doivent différer des noms des tables qu’ils représentent.
SQL_CN_ANY = Les noms de corrélation sont pris en charge et peuvent être n’importe quel nom valide défini par l’utilisateur.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours SQL_CN_ANY.
SQL_CREATE_ASSERTION 3.0 Masque de bits SQLUINTEGER énumérant les clauses dans l’instruction CREATE ASSERTION , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CA_CREATE_ASSERTION

Les bits suivants spécifient l’attribut de contrainte pris en charge si la possibilité de spécifier explicitement des attributs de contrainte est prise en charge (consultez les types d’informations SQL_ALTER_TABLE et SQL_CREATE_TABLE) :
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

Un pilote SQL-92 conforme au niveau complet retourne toujours toutes ces options prises en charge. La valeur de retour « 0 » signifie que l’instruction CREATE ASSERTION n’est pas prise en charge.
SQL_CREATE_CHARACTER_SET 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction CREATE CHARACTER SET , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

Un pilote SQL-92 conforme au niveau complet retourne toujours toutes ces options prises en charge. La valeur de retour « 0 » signifie que l’instruction CREATE CHARACTER SET n’est pas prise en charge.
SQL_CREATE_COLLATION 3.0 Masque de bits SQLUINTEGER énumérant les clauses dans l’instruction CREATE COLLATION , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_CCOL_CREATE_COLLATION

Un pilote SQL-92 conforme au niveau complet retourne toujours cette option comme prise en charge. La valeur de retour « 0 » signifie que l’instruction CREATE COLLATION n’est pas prise en charge.
SQL_CREATE_DOMAIN 3.0 Masque de bits SQLUINTEGER qui énumére les clauses dans l’instruction CREATE DOMAIN , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CDO_CREATE_DOMAIN = L’instruction CREATE DOMAIN est prise en charge (niveau intermédiaire).
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <définition de nom de> contrainte est prise en charge pour les contraintes de domaine de nommage (niveau intermédiaire).

Les bits suivants spécifient la possibilité de créer des contraintes de colonne :
SQL_CDO_DEFAULT = La spécification de contraintes de domaine est prise en charge (niveau intermédiaire)
SQL_CDO_CONSTRAINT = La spécification des valeurs par défaut du domaine est prise en charge (niveau intermédiaire)
SQL_CDO_COLLATION = La spécification du classement de domaine est prise en charge (niveau complet)

Les bits suivants spécifient les attributs de contrainte pris en charge si la spécification de contraintes de domaine est prise en charge (SQL_CDO_DEFAULT est défini) :
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (niveau complet)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (niveau complet)
SQL_CDO_CONSTRAINT_DEFERRABLE (niveau complet)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (niveau complet)

La valeur de retour « 0 » signifie que l’instruction CREATE DOMAIN n’est pas prise en charge.
SQL_CREATE_SCHEMA 3.0 Masque de bits SQLUINTEGER énumérant les clauses dans l’instruction CREATE SCHEMA , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CS_CREATE_SCHEMA
SQL_CS_AUTHORIZATION
SQL_CS_DEFAULT_CHARACTER_SET

Un pilote conforme au niveau intermédiaire SQL-92 retourne toujours les options SQL_CS_CREATE_SCHEMA et SQL_CS_AUTHORIZATION prises en charge. Celles-ci doivent également être prises en charge au niveau d’entrée SQL-92, mais pas nécessairement en tant qu’instructions SQL. Un pilote SQL-92 conforme au niveau complet retourne toujours toutes ces options prises en charge.
SQL_CREATE_TABLE 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction CREATE TABLE , comme défini dans SQL-92, pris en charge par la source de données.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses à côté de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CT_CREATE_TABLE = L’instruction CREATE TABLE est prise en charge. (Niveau d’entrée)
SQL_CT_TABLE_CONSTRAINT = La spécification de contraintes de table est prise en charge (niveau transitionnel FIPS)
SQL_CT_CONSTRAINT_NAME_DEFINITION = La <clause de définition> de nom de contrainte est prise en charge pour les contraintes de nommage de colonne et de table (niveau intermédiaire)

Les bits suivants spécifient la possibilité de créer des tables temporaires :
SQL_CT_COMMIT_PRESERVE = Les lignes supprimées sont conservées lors de la validation. (Niveau complet)
SQL_CT_COMMIT_DELETE = Les lignes supprimées sont supprimées lors de la validation. (Niveau complet)
SQL_CT_GLOBAL_TEMPORARY = Des tables temporaires globales peuvent être créées. (Niveau complet)
SQL_CT_LOCAL_TEMPORARY = Des tables temporaires locales peuvent être créées. (Niveau complet)

Les bits suivants spécifient la possibilité de créer des contraintes de colonne :
SQL_CT_COLUMN_CONSTRAINT = La spécification de contraintes de colonne est prise en charge (niveau transitoire FIPS)
SQL_CT_COLUMN_DEFAULT = La spécification des valeurs par défaut des colonnes est prise en charge (niveau transitoire FIPS)
SQL_CT_COLUMN_COLLATION = La spécification du classement des colonnes est prise en charge (niveau complet)

Les bits suivants spécifient les attributs de contrainte pris en charge si la spécification de contraintes de colonne ou de table est prise en charge :
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (niveau complet)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (niveau complet)
SQL_CT_CONSTRAINT_DEFERRABLE (niveau complet)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (niveau complet)
SQL_CREATE_TRANSLATION 3.0 Masque de bits SQLUINTEGER énumérant les clauses dans l’instruction CREATE TRANSLATION , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_CTR_CREATE_TRANSLATION

Un pilote SQL-92 conforme au niveau complet retourne toujours ces options telles que prises en charge. La valeur de retour « 0 » signifie que l’instruction CREATE TRANSLATION n’est pas prise en charge.
SQL_CREATE_VIEW 3.0 Masque de bits SQLUINTEGER énumérant les clauses dans l’instruction CREATE VIEW , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_CV_CREATE_VIEW
SQL_CV_CHECK_OPTION
SQL_CV_CASCADED
SQL_CV_LOCAL

La valeur de retour « 0 » signifie que l’instruction CREATE VIEW n’est pas prise en charge.

Un pilote sql-92 conforme au niveau d’entrée retourne toujours les options SQL_CV_CREATE_VIEW et SQL_CV_CHECK_OPTION prises en charge.

Un pilote SQL-92 conforme au niveau complet retourne toujours toutes ces options prises en charge.
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 Valeur SQLUSMALLINT qui indique comment une opération COMMIT affecte les curseurs et les instructions préparées dans la source de données (comportement de la source de données lorsque vous validez une transaction).

La valeur de cet attribut reflète l’état actuel du paramètre suivant : SQL_COPT_SS_PRESERVE_CURSORS.
SQL_CB_DELETE = Fermer les curseurs et supprimer les instructions préparées. Pour réutiliser le curseur, l’application doit repréparer et réexécuter l’instruction.
SQL_CB_CLOSE = Fermer les curseurs. Pour les instructions préparées, l’application peut appeler SQLExecute sur l’instruction sans appeler à nouveau SQLPrepare . La valeur par défaut du pilote ODBC SQL est SQL_CB_CLOSE. Cela signifie que le pilote ODBC SQL ferme vos curseurs lorsque vous validez une transaction.
SQL_CB_PRESERVE = Conserver les curseurs dans la même position qu’avant l’opération COMMIT . L’application peut continuer à extraire des données, ou elle peut fermer le curseur et réexécuter l’instruction sans la repréparer.
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 Valeur SQLUSMALLINT qui indique comment une opération ROLLBACK affecte les curseurs et les instructions préparées dans la source de données :
SQL_CB_DELETE = Fermer les curseurs et supprimer les instructions préparées. Pour réutiliser le curseur, l’application doit repréparer et réexécuter l’instruction.
SQL_CB_CLOSE = Fermer les curseurs. Pour les instructions préparées, l’application peut appeler SQLExecute sur l’instruction sans appeler à nouveau SQLPrepare .
SQL_CB_PRESERVE = Conserver les curseurs dans la même position qu’avant l’opération ROLLBACK . L’application peut continuer à extraire des données, ou elle peut fermer le curseur et réexécuter l’instruction sans la repréparer.
SQL_CURSOR_SENSITIVITY 3.0 Valeur SQLUINTEGER qui indique la prise en charge de la sensibilité du curseur :
SQL_INSENSITIVE = Tous les curseurs sur le handle d’instruction affichent le jeu de résultats sans refléter les modifications qui lui ont été apportées par un autre curseur au sein de la même transaction.
SQL_UNSPECIFIED = Il n’est pas spécifié si les curseurs sur le handle d’instruction rendent visibles les modifications qui ont été apportées à un jeu de résultats par un autre curseur dans la même transaction. Les curseurs sur le handle d’instruction peuvent rendre visible aucune modification, une partie ou l’ensemble de ces modifications.
SQL_SENSITIVE = Les curseurs sont sensibles aux modifications apportées par d’autres curseurs dans la même transaction.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours l’option SQL_UNSPECIFIED comme prise en charge.

Un pilote SQL-92 conforme au niveau complet retourne toujours l’option SQL_INSENSITIVE comme prise en charge.
SQL_DATA_SOURCE_NAME 1.0 Chaîne de caractères avec le nom de la source de données utilisée lors de la connexion. Si l’application a appelé SQLConnect, il s’agit de la valeur de l’argument szDSN . Si l’application a appelé SQLDriverConnect ou SQLBrowseConnect, il s’agit de la valeur du mot clé DSN dans la chaîne de connexion passée au pilote. Si la chaîne de connexion ne contient pas le mot clé DSN (par exemple lorsqu’elle contient le mot clé DRIVER ), il s’agit d’une chaîne vide.
SQL_DATA_SOURCE_READ_ONLY 1.0 Chaîne caractère. « Y » si la source de données est définie en mode LECTURE SEULE, « N » dans le cas contraire.

Cette caractéristique se rapporte uniquement à la source de données elle-même ; ce n’est pas une caractéristique du pilote qui permet d’accéder à la source de données. Un pilote en lecture/écriture peut être utilisé avec une source de données en lecture seule. Si un pilote est en lecture seule, toutes ses sources de données doivent être en lecture seule et doivent retourner SQL_DATA_SOURCE_READ_ONLY.
SQL_DATABASE_NAME 1.0 Chaîne de caractères avec le nom de la base de données active en cours d’utilisation, si la source de données définit un objet nommé appelé « base de données ».

Dans ODBC 3.x, la valeur retournée pour cet InfoType peut également être retournée en appelant SQLGetConnectAttr avec un argument Attribute de SQL_ATTR_CURRENT_CATALOG.
SQL_DATETIME_LITERALS 3.0 Masque de bits SQLUINTEGER énumérant les littéraux dateheure SQL-92 pris en charge par la source de données. Notez qu’il s’agit des littéraux datetime répertoriés dans la spécification SQL-92 et qu’ils sont distincts des clauses d’échappement littéral datetime définies par ODBC. Pour plus d’informations sur les clauses d’échappement littérale datetime ODBC, consultez Littéral date, heure et horodatage.

Un pilote conforme au niveau transitoire FIPS retourne toujours la valeur « 1 » dans le masque de bits pour les bits de la liste suivante. La valeur « 0 » signifie que les littéraux datetime SQL-92 ne sont pas pris en charge.

Les masques de bits suivants sont utilisés pour déterminer quels littéraux sont pris en charge :
SQL_DL_SQL92_DATE
SQL_DL_SQL92_TIME
SQL_DL_SQL92_TIMESTAMP
SQL_DL_SQL92_INTERVAL_YEAR
SQL_DL_SQL92_INTERVAL_MONTH
SQL_DL_SQL92_INTERVAL_DAY
SQL_DL_SQL92_INTERVAL_HOUR
SQL_DL_SQL92_INTERVAL_MINUTE
SQL_DL_SQL92_INTERVAL_SECOND
SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH
SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR
SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE
SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND
SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE
SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND
SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND
SQL_DBMS_NAME 1.0 Chaîne de caractères avec le nom du produit SGBD accessible par le pilote.
SQL_DBMS_VER 1.0 Chaîne de caractères qui indique la version du produit SGBD accessible par le pilote. La version est de la forme ##.##.###, où les deux premiers chiffres sont la version principale, les deux chiffres suivants sont la version mineure et les quatre derniers chiffres sont la version de version. Le pilote doit restituer la version du produit SGBD sous cette forme, mais peut également ajouter la version spécifique au produit du SGBD. Par exemple, « 04.01.0000 Rdb 4.1 ».
SQL_DDL_INDEX 3.0 Valeur SQLUINTEGER qui indique la prise en charge de la création et de la suppression d’index :
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 Valeur SQLUINTEGER qui indique le niveau d’isolation de transaction par défaut pris en charge par le pilote ou la source de données, ou zéro si la source de données ne prend pas en charge les transactions. Les termes suivants sont utilisés pour définir les niveaux d’isolation des transactions :
Lecture incorrecte La transaction 1 modifie une ligne. La transaction 2 lit la ligne modifiée avant que la transaction 1 valide la modification. Si la transaction 1 annule la modification, la transaction 2 aura lu une ligne qui est considérée comme n’ayant jamais existé.
Lecture non reproductible La transaction 1 lit une ligne. La transaction 2 met à jour ou supprime cette ligne et valide cette modification. Si la transaction 1 tente de relire la ligne, elle reçoit des valeurs de ligne différentes ou découvre que la ligne a été supprimée.
Fantôme La transaction 1 lit un ensemble de lignes qui répondent à certains critères de recherche. La transaction 2 génère une ou plusieurs lignes (par le biais d’insertions ou de mises à jour) qui correspondent aux critères de recherche. Si la transaction 1 réexécue l’instruction qui lit les lignes, elle reçoit un autre ensemble de lignes.

Si la source de données prend en charge les transactions, le pilote retourne l’un des masques de bits suivants :
SQL_TXN_READ_UNCOMMITTED = Des lectures incorrectes, des lectures non reproductibles et des fantômes sont possibles.
SQL_TXN_READ_COMMITTED = Les lectures incorrectes ne sont pas possibles. Des lectures et des fantômes non reproductibles sont possibles.
SQL_TXN_REPEATABLE_READ = Les lectures incorrectes et les lectures non reproductibles ne sont pas possibles. Les fantômes sont possibles.
SQL_TXN_SERIALIZABLE = Les transactions sont sérialisables. Les transactions sérialisables n’autorisent pas les lectures incorrectes, les lectures non reproductibles ou les fantômes.
SQL_DESCRIBE_PARAMETER 3.0 Chaîne de caractères : « Y » si les paramètres peuvent être décrits ; « N », si ce n’est pas le cas.

Un pilote de niveau complet SQL-92 retourne généralement « Y », car il prend en charge l’instruction DESCRIBE INPUT . Étant donné que cela ne spécifie pas directement la prise en charge SQL sous-jacente, toutefois, la description des paramètres peut ne pas être prise en charge, même dans un pilote de niveau complet SQL-92.
SQL_DM_VER 3.0 Chaîne de caractères avec la version du Gestionnaire de pilotes. La version est de la forme ##.##.###.#, où :
Le premier ensemble de deux chiffres est la version ODBC principale, comme indiqué par la constante SQL_SPEC_MAJOR.
Le deuxième ensemble de deux chiffres est la version ODBC mineure, comme indiqué par la constante SQL_SPEC_MINOR.
Le troisième ensemble de quatre chiffres est le numéro de build principal du Gestionnaire de pilotes.
Le dernier ensemble de quatre chiffres est le numéro de build secondaire du Gestionnaire de pilotes.
La version du Gestionnaire de pilotes Windows 7 est 03.80. La version du Gestionnaire de pilotes Windows 8 est 03.81.
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3.8 Valeur SQLUINTEGER qui indique si le pilote prend en charge le regroupement prenant en charge les pilotes. (Pour plus d’informations, consultez Regroupement de connexions prenant en charge les pilotes.

SQL_DRIVER_AWARE_POOLING_CAPABLE indique que le pilote peut prendre en charge le mécanisme de regroupement prenant en charge les pilotes.
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE indique que le pilote ne peut pas prendre en charge le mécanisme de regroupement prenant en charge les pilotes.

Un pilote n’a pas besoin d’implémenter SQL_DRIVER_AWARE_POOLING_SUPPORTED et le Gestionnaire de pilotes ne respecte pas la valeur de retour du pilote.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Valeur SQLULEN, le handle d’environnement du pilote ou le handle de connexion, déterminé par l’argument InfoType.

Ces types d’informations sont implémentés par le Gestionnaire de pilotes seul.
SQL_DRIVER_HDESC 3.0 Une valeur SQLULEN, le handle de descripteur du pilote déterminé par le descripteur du gestionnaire de pilotes, qui doit être transmis à l’entrée dans *InfoValuePtr à partir de l’application. Dans ce cas, InfoValuePtr est à la fois un argument d’entrée et de sortie. Le handle de descripteur d’entrée passé dans *InfoValuePtr doit avoir été alloué explicitement ou implicitement sur le ConnectionHandle.

L’application doit effectuer une copie du descripteur du Gestionnaire de pilotes avant d’appeler SQLGetInfo avec ce type d’informations, pour s’assurer que le handle n’est pas remplacé sur la sortie.

Ce type d’informations est implémenté par le Gestionnaire de pilotes seul.
SQL_DRIVER_HLIB 2.0 Valeur SQLULEN, l’obstacle de la bibliothèque de charge renvoyé au Gestionnaire de pilotes lorsqu’il a chargé la DLL de pilote sur un système d’exploitation Microsoft Windows, ou son équivalent sur un autre système d’exploitation. Le handle est valide uniquement pour le handle de connexion spécifié dans l’appel à SQLGetInfo.

Ce type d’informations est implémenté par le Gestionnaire de pilotes seul.
SQL_DRIVER_HSTMT 1.0 Valeur SQLULEN, le handle d’instruction du pilote déterminé par le handle d’instruction Driver Manager, qui doit être transmis lors de l’entrée dans *InfoValuePtr à partir de l’application. Dans ce cas, InfoValuePtr est à la fois un argument d’entrée et un argument de sortie. Le handle d’instruction d’entrée passé dans *InfoValuePtr doit avoir été alloué sur l’argument ConnectionHandle.

L’application doit effectuer une copie du handle d’instruction du Gestionnaire de pilotes avant d’appeler SQLGetInfo avec ce type d’informations, afin de s’assurer que le handle n’est pas remplacé sur la sortie.

Ce type d’informations est implémenté par le Gestionnaire de pilotes seul.
SQL_DRIVER_NAME 1.0 Chaîne de caractères avec le nom de fichier du pilote utilisé pour accéder à la source de données.
SQL_DRIVER_ODBC_VER 2.0 Chaîne de caractères avec la version d’ODBC prise en charge par le pilote. La version est de la forme ##.##, où les deux premiers chiffres sont la version principale et les deux chiffres suivants sont la version mineure. SQL_SPEC_MAJOR et SQL_SPEC_MINOR définissent les numéros de version principale et secondaire. Pour la version d’ODBC décrite dans ce manuel, il s’agit de 3 et 0, et le pilote doit retourner « 03.00 ».

Le Gestionnaire de pilotes ODBC ne modifie pas la valeur de retour de SQLGetInfo(SQL_DRIVER_ODBC_VER) pour maintenir la compatibilité descendante pour les applications existantes. Le pilote spécifie la valeur qui sera retournée. Toutefois, un pilote qui prend en charge l’extensibilité du type de données C doit retourner la version 3.8 (ou ultérieure) lorsqu’une application appelle SQLSetEnvAttr pour définir SQL_ATTR_ODBC_VERSION sur 3.8. Pour plus d’informations, consultez Types de données C dans ODBC.
SQL_DRIVER_VER 1.0 Chaîne de caractères avec la version du pilote et éventuellement, une description du pilote. Au minimum, la version se présente sous la forme ##.#.#####, où les deux premiers chiffres sont la version principale, les deux chiffres suivants sont la version mineure et les quatre derniers chiffres sont la version de mise en production.
SQL_DROP_ASSERTION 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP ASSERTION , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_DA_DROP_ASSERTION

Un pilote de niveau complet SQL-92 retourne toujours cette option comme prise en charge.
SQL_DROP_CHARACTER_SET 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP CHARACTER SET , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_DCS_DROP_CHARACTER_SET

Un pilote de niveau complet SQL-92 retourne toujours cette option comme prise en charge.
SQL_DROP_COLLATION 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP COLLATION , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_DC_DROP_COLLATION

Un pilote de niveau complet SQL-92 retourne toujours cette option comme prise en charge.
SQL_DROP_DOMAIN 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP DOMAIN , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

Un pilote de niveau intermédiaire SQL-92 retourne toujours toutes ces options prises en charge.
SQL_DROP_SCHEMA 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP SCHEMA , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

Un pilote de niveau intermédiaire SQL-92 retourne toujours toutes ces options prises en charge.
SQL_DROP_TABLE 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP TABLE , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

Un pilote conforme au niveau transitoire FIPS retourne toujours toutes ces options prises en charge.
SQL_DROP_TRANSLATION 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP TRANSLATION , comme défini dans SQL-92, pris en charge par la source de données.

Le masque de bits suivant est utilisé pour déterminer les clauses prises en charge :
SQL_DTR_DROP_TRANSLATION

Un pilote de niveau complet SQL-92 retourne toujours cette option comme prise en charge.
SQL_DROP_VIEW 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP VIEW , comme défini dans SQL-92, pris en charge par la source de données.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge :
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

Un pilote conforme au niveau transitoire FIPS retourne toujours toutes ces options prises en charge.
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur dynamique pris en charge par le pilote. Ce masque de bits contient le premier sous-ensemble d’attributs ; pour le deuxième sous-ensemble, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES2.

Les masques de bits suivants sont utilisés pour déterminer quels attributs sont pris en charge :
SQL_CA1_NEXT = Un argument FetchOrientation de SQL_FETCH_NEXT est pris en charge dans un appel à SQLFetchScroll lorsque le curseur est un curseur dynamique.
SQL_CA1_ABSOLUTE = Les arguments FetchOrientation de SQL_FETCH_FIRST, SQL_FETCH_LAST et SQL_FETCH_ABSOLUTE sont pris en charge dans un appel à SQLFetchScroll lorsque le curseur est un curseur dynamique. (L’ensemble de lignes qui sera extrait est indépendant de la position actuelle du curseur.)
SQL_CA1_RELATIVE = Les arguments FetchOrientation de SQL_FETCH_PRIOR et SQL_FETCH_RELATIVE sont pris en charge dans un appel à SQLFetchScroll lorsque le curseur est un curseur dynamique. (L’ensemble de lignes qui sera extrait dépend de la position actuelle du curseur. Notez que cela est séparé de SQL_FETCH_NEXT, car dans un curseur avant uniquement, seul SQL_FETCH_NEXT est pris en charge.)
SQL_CA1_BOOKMARK = Un argument FetchOrientation de SQL_FETCH_BOOKMARK est pris en charge dans un appel à SQLFetchScroll lorsque le curseur est un curseur dynamique.
SQL_CA1_LOCK_EXCLUSIVE = Un argument LockType de SQL_LOCK_EXCLUSIVE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_LOCK_NO_CHANGE = Un argument LockType de SQL_LOCK_NO_CHANGE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_LOCK_UNLOCK = Un argument LockType de SQL_LOCK_UNLOCK est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_POSITION = Un argument Operation de SQL_POSITION est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_UPDATE = Un argument Operation de SQL_UPDATE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_DELETE = Un argument Operation de SQL_DELETE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_REFRESH = Un argument Operation de SQL_REFRESH est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POSITIONED_UPDATE = Une instruction UPDATE WHERE CURRENT OF SQL est prise en charge lorsque le curseur est un curseur dynamique. (Un pilote conforme au niveau d’entrée SQL-92 retourne toujours cette option comme prise en charge.)
SQL_CA1_POSITIONED_DELETE = Une instruction DELETE WHERE CURRENT OF SQL est prise en charge lorsque le curseur est un curseur dynamique. (Un pilote conforme au niveau d’entrée SQL-92 retourne toujours cette option comme prise en charge.)
SQL_CA1_SELECT_FOR_UPDATE = Une instruction SQL SELECT FOR UPDATE est prise en charge lorsque le curseur est un curseur dynamique. (Un pilote conforme au niveau d’entrée SQL-92 retourne toujours cette option comme prise en charge.)
SQL_CA1_BULK_ADD = Un argument Operation de SQL_ADD est pris en charge dans un appel à SQLBulkOperations lorsque le curseur est un curseur dynamique.
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = Un argument Operation de SQL_UPDATE_BY_BOOKMARK est pris en charge dans un appel à SQLBulkOperations lorsque le curseur est un curseur dynamique.
SQL_CA1_BULK_DELETE_BY_BOOKMARK = Un argument Operation de SQL_DELETE_BY_BOOKMARK est pris en charge dans un appel à SQLBulkOperations lorsque le curseur est un curseur dynamique.
SQL_CA1_BULK_FETCH_BY_BOOKMARK = Un argument Operation de SQL_FETCH_BY_BOOKMARK est pris en charge dans un appel à SQLBulkOperations lorsque le curseur est un curseur dynamique.

Un pilote sql-92 conforme au niveau intermédiaire retourne généralement les options SQL_CA1_NEXT, SQL_CA1_ABSOLUTE et SQL_CA1_RELATIVE prises en charge, car il prend en charge les curseurs de défilement via l’instruction SQL FETCH incorporée. Étant donné que cela ne détermine pas directement la prise en charge sql sous-jacente, les curseurs avec défilement peuvent ne pas être pris en charge, même pour un pilote conforme au niveau intermédiaire SQL-92.
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur dynamique pris en charge par le pilote. Ce masque de bits contient le deuxième sous-ensemble d’attributs ; pour le premier sous-ensemble, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1.

Les masques de bits suivants sont utilisés pour déterminer les attributs pris en charge :
SQL_CA2_READ_ONLY_CONCURRENCY = Un curseur dynamique en lecture seule, dans lequel aucune mise à jour n’est autorisée, est pris en charge. (L’attribut d’instruction SQL_ATTR_CONCURRENCY peut être SQL_CONCUR_READ_ONLY pour un curseur dynamique).
SQL_CA2_LOCK_CONCURRENCY = Curseur dynamique qui utilise le niveau de verrouillage le plus bas suffisant pour s’assurer que la ligne peut être mise à jour est pris en charge. (L’attribut d’instruction SQL_ATTR_CONCURRENCY peut être SQL_CONCUR_LOCK pour un curseur dynamique.) Ces verrous doivent être cohérents avec le niveau d’isolation des transactions défini par l’attribut de connexion SQL_ATTR_TXN_ISOLATION.
SQL_CA2_OPT_ROWVER_CONCURRENCY = Un curseur dynamique qui utilise le contrôle d’accès concurrentiel optimiste comparant les versions de ligne est pris en charge. (L’attribut d’instruction SQL_ATTR_CONCURRENCY peut être SQL_CONCUR_ROWVER pour un curseur dynamique.)
SQL_CA2_OPT_VALUES_CONCURRENCY = Un curseur dynamique qui utilise le contrôle d’accès concurrentiel optimiste comparant des valeurs est pris en charge. (L’attribut d’instruction SQL_ATTR_CONCURRENCY peut être SQL_CONCUR_VALUES pour un curseur dynamique.)
SQL_CA2_SENSITIVITY_ADDITIONS = Les lignes ajoutées sont visibles pour un curseur dynamique ; le curseur peut faire défiler jusqu’à ces lignes. (L’emplacement où ces lignes sont ajoutées au curseur dépend du pilote.)
SQL_CA2_SENSITIVITY_DELETIONS = Les lignes supprimées ne sont plus disponibles pour un curseur dynamique et ne laissent pas de « trou » dans le jeu de résultats ; une fois que le curseur dynamique fait défiler à partir d’une ligne supprimée, il ne peut pas revenir à cette ligne.
SQL_CA2_SENSITIVITY_UPDATES = Mises à jour aux lignes sont visibles par un curseur dynamique ; si le curseur dynamique fait défiler et retourne vers une ligne mise à jour, les données retournées par le curseur sont les données mises à jour, et non les données d’origine.
SQL_CA2_MAX_ROWS_SELECT = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les instructions SELECT lorsque le curseur est un curseur dynamique.
SQL_CA2_MAX_ROWS_INSERT = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les instructions INSERT lorsque le curseur est un curseur dynamique.
SQL_CA2_MAX_ROWS_DELETE = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les instructions DELETE lorsque le curseur est un curseur dynamique.
SQL_CA2_MAX_ROWS_UPDATE = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les instructions UPDATE lorsque le curseur est un curseur dynamique.
SQL_CA2_MAX_ROWS_CATALOG = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les jeux de résultats CATALOG lorsque le curseur est un curseur dynamique.
SQL_CA2_MAX_ROWS_AFFECTS_ALL = L’attribut d’instruction SQL_ATTR_MAX_ROWS affecte les instructions SELECT, INSERT, DELETE et UPDATE , ainsi que les jeux de résultats CATALOG , lorsque le curseur est un curseur dynamique.
SQL_CA2_CRC_EXACT = Le nombre exact de lignes est disponible dans le champ de diagnostic SQL_DIAG_CURSOR_ROW_COUNT lorsque le curseur est un curseur dynamique.
SQL_CA2_CRC_APPROXIMATE = Un nombre approximatif de lignes est disponible dans le champ de diagnostic SQL_DIAG_CURSOR_ROW_COUNT lorsque le curseur est un curseur dynamique.
SQL_CA2_SIMULATE_NON_UNIQUE = Le pilote ne garantit pas que les instructions de mise à jour ou de suppression positionnées simulées n’affecteront qu’une seule ligne lorsque le curseur est un curseur dynamique ; il incombe à l’application de garantir cela. (Si une instruction affecte plusieurs lignes, SQLExecute ou SQLExecDirect retourne SQLSTATE 01001 [Conflit d’opération de curseur].) Pour définir ce comportement, l’application appelle SQLSetStmtAttr avec l’attribut SQL_ATTR_SIMULATE_CURSOR défini sur SQL_SC_NON_UNIQUE.
SQL_CA2_SIMULATE_TRY_UNIQUE = Le pilote tente de garantir que les instructions de mise à jour ou de suppression positionnées simulées n’affecteront qu’une seule ligne lorsque le curseur est un curseur dynamique. Le pilote exécute toujours ces instructions, même si elles peuvent affecter plusieurs lignes, par exemple lorsqu’il n’y a pas de clé unique. (Si une instruction affecte plusieurs lignes, SQLExecute ou SQLExecDirect retourne SQLSTATE 01001 [Conflit d’opération de curseur].) Pour définir ce comportement, l’application appelle SQLSetStmtAttr avec l’attribut SQL_ATTR_SIMULATE_CURSOR défini sur SQL_SC_TRY_UNIQUE.
SQL_CA2_SIMULATE_UNIQUE = Le pilote garantit que les instructions de mise à jour ou de suppression positionnées simulées n’affecteront qu’une seule ligne lorsque le curseur est un curseur dynamique. Si le pilote ne peut pas garantir cela pour une instruction donnée, SQLExecDirect ou SQLPrepare retourneNT SQLSTATE 01001 (conflit d’opération de curseur). Pour définir ce comportement, l’application appelle SQLSetStmtAttr avec l’attribut SQL_ATTR_SIMULATE_CURSOR défini sur SQL_SC_UNIQUE.
SQL_EXPRESSIONS_IN_ORDERBY 1.0 Chaîne de caractères : « Y » si la source de données prend en charge les expressions dans la liste ORDER BY ; « N » si ce n’est pas le cas.
SQL_FILE_USAGE 2.0 Valeur SQLUSMALLINT qui indique comment un pilote de niveau unique traite directement les fichiers dans une source de données :
SQL_FILE_NOT_SUPPORTED = Le pilote n’est pas un pilote à un seul niveau. Par exemple, un pilote ORACLE est un pilote à deux niveaux.
SQL_FILE_TABLE = Un pilote à un seul niveau traite les fichiers d’une source de données comme des tables. Par exemple, un pilote Xbase traite chaque fichier Xbase comme une table.
SQL_FILE_CATALOG = Un pilote à un seul niveau traite les fichiers d’une source de données comme un catalogue. Par exemple, un pilote Microsoft Access traite chaque fichier Microsoft Access comme une base de données complète.

Une application peut l’utiliser pour déterminer comment les utilisateurs sélectionnent les données. Par exemple, les utilisateurs Xbase considèrent souvent les données comme stockées dans des fichiers, tandis que les utilisateurs ORACLE et Microsoft Access considèrent généralement les données comme stockées dans des tables.

Lorsqu’un utilisateur sélectionne une source de données Xbase, l’application peut afficher la boîte de dialogue Ouvrir un fichier Windows commune ; lorsque l’utilisateur sélectionne une source de données Microsoft Access ou ORACLE, l’application peut afficher une boîte de dialogue Sélectionner une table personnalisée.
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur avant uniquement pris en charge par le pilote. Ce masque de bits contient le premier sous-ensemble d’attributs ; pour le deuxième sous-ensemble, consultez SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2.

Les masques de bits suivants sont utilisés pour déterminer les attributs pris en charge :
SQL_CA1_NEXT
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Pour obtenir une description de ces masque de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur avant uniquement » par « curseur dynamique » dans les descriptions).
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur avant uniquement pris en charge par le pilote. Ce masque de bits contient le deuxième sous-ensemble d’attributs ; pour le premier sous-ensemble, consultez SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1.

Les masques de bits suivants sont utilisés pour déterminer les attributs pris en charge :
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Pour obtenir une description de ces masque de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (et remplacez « curseur avant uniquement » par « curseur dynamique » dans les descriptions).
SQL_GETDATA_EXTENSIONS 2.0 Masque de bits SQLUINTEGER énumérant des extensions pour SQLGetData.

Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer les extensions courantes que le pilote prend en charge pour SQLGetData :
SQL_GD_ANY_COLUMN = SQLGetData peut être appelé pour n’importe quelle colonne indépendante, y compris celles antérieures à la dernière colonne liée. Notez que les colonnes doivent être appelées dans l’ordre du numéro de colonne croissant, sauf si SQL_GD_ANY_ORDER est également retourné.
SQL_GD_ANY_ORDER = SQLGetData peut être appelé pour les colonnes indépendantes dans n’importe quel ordre. Notez que SQLGetData peut être appelé uniquement pour les colonnes après la dernière colonne liée, sauf si SQL_GD_ANY_COLUMN est également retourné.
SQL_GD_BLOCK = SQLGetData peut être appelé pour une colonne indépendante dans n’importe quelle ligne d’un bloc (où la taille de l’ensemble de lignes est supérieure à 1) de données après le positionnement sur cette ligne avec SQLSetPos.
SQL_GD_BOUND = SQLGetData peut être appelé pour les colonnes liées en plus des colonnes indépendantes. Un pilote ne peut pas retourner cette valeur, sauf s’il retourne également SQL_GD_ANY_COLUMN.
SQL_GD_OUTPUT_PARAMS = SQLGetData peut être appelé pour retourner des valeurs de paramètre de sortie. Pour plus d’informations, consultez Récupération des paramètres de sortie à l’aide de SQLGetData.

SQLGetData est nécessaire pour retourner des données uniquement à partir de colonnes indépendantes qui se produisent après la dernière colonne liée, qui sont appelées dans l’ordre d’augmentation du nombre de colonnes et qui ne se trouvent pas dans une ligne dans un bloc de lignes.

Si un pilote prend en charge les signets (de longueur fixe ou variable), il doit prendre en charge l’appel de SQLGetData sur la colonne 0. Cette prise en charge est requise indépendamment de ce que le pilote retourne pour un appel à SQLGetInfo avec l’infoType SQL_GETDATA_EXTENSIONS.
SQL_GROUP_BY 2.0 Valeur SQLUSMALLINT qui spécifie la relation entre les colonnes de la clause GROUP BY et les colonnes non agrégées dans la liste de sélection :
SQL_GB_COLLATE = Une clause COLLATE peut être spécifiée à la fin de chaque colonne de regroupement. (ODBC 3.0)
SQL_GB_NOT_SUPPORTED = Les clauses GROUP BY ne sont pas prises en charge. (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = La clause GROUP BY doit contenir toutes les colonnes non agrégées dans la liste de sélection. Il ne peut pas contenir d’autres colonnes. Par exemple, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = La clause GROUP BY doit contenir toutes les colonnes non agrégées dans la liste de sélection. Il peut contenir des colonnes qui ne figurent pas dans la liste de sélection. Par exemple, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)
SQL_GB_NO_RELATION = Les colonnes de la clause GROUP BY et de la liste de sélection ne sont pas liées. La signification des colonnes non groupées et non agrégées dans la liste de sélection dépend de la source de données. Par exemple, SELECT DEPT, SALARY FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)

Un pilote sql-92 conforme au niveau d’entrée retourne toujours l’option SQL_GB_GROUP_BY_EQUALS_SELECT telle que prise en charge. Un pilote sql-92 conforme au niveau complet retourne toujours l’option SQL_GB_COLLATE comme prise en charge. Si aucune des options n’est prise en charge, la clause GROUP BY n’est pas prise en charge par la source de données.
SQL_IDENTIFIER_CASE 1.0 Valeur SQLUSMALLINT comme suit :
SQL_IC_UPPER = Les identificateurs dans SQL ne respectent pas la casse et sont stockés en majuscules dans le catalogue système.
SQL_IC_LOWER = Les identificateurs dans SQL ne respectent pas la casse et sont stockés en minuscules dans le catalogue système.
SQL_IC_SENSITIVE = Les identificateurs dans SQL respectent la casse et sont stockés en cas mixte dans le catalogue système.
SQL_IC_MIXED = Les identificateurs dans SQL ne respectent pas la casse et sont stockés en casse mixte dans le catalogue système.

Étant donné que les identificateurs dans SQL-92 ne respectent jamais la casse, un pilote strictement conforme à SQL-92 (n’importe quel niveau) ne retourne jamais l’option SQL_IC_SENSITIVE telle que prise en charge.
SQL_IDENTIFIER_QUOTE_CHAR 1.0 Chaîne de caractères utilisée comme délimiteur de début et de fin d’un identificateur entre guillemets (délimité) dans les instructions SQL. (Les identificateurs passés en tant qu’arguments aux fonctions ODBC ne doivent pas être entre guillemets.) Si la source de données ne prend pas en charge les identificateurs entre guillemets, un vide est retourné.

Cette chaîne de caractères peut également être utilisée pour mettre entre guillemets des arguments de fonction de catalogue lorsque l’attribut de connexion SQL_ATTR_METADATA_ID est défini sur SQL_TRUE.

Étant donné que le guillemet d’identificateur dans SQL-92 est le guillemet double (« ), un pilote strictement conforme à SQL-92 renvoie toujours le caractère guillemet double.
SQL_INDEX_KEYWORDS 3.0 Masque de bits SQLUINTEGER qui énumère les mots clés dans l’instruction CREATE INDEX pris en charge par le pilote :
SQL_IK_NONE = Aucun des mots clés n’est pris en charge.
SQL_IK_ASC = le mot clé ASC est pris en charge.
SQL_IK_DESC = Le mot clé DESC est pris en charge.
SQL_IK_ALL = Tous les mots clés sont pris en charge.

Pour voir si l’instruction CREATE INDEX est prise en charge, une application appelle SQLGetInfo avec le type d’informations SQL_DLL_INDEX.
SQL_INFO_SCHEMA_VIEWS 3.0 Masque de bits SQLUINTEGER énumérant les vues dans le INFORMATION_SCHEMA prises en charge par le pilote. Les vues dans et le contenu des INFORMATION_SCHEMA sont définis dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses à côté de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les vues prises en charge :
SQL_ISV_ASSERTIONS = Identifie les assertions du catalogue qui appartiennent à un utilisateur donné. (Niveau complet)
SQL_ISV_CHARACTER_SETS = Identifie les jeux de caractères du catalogue accessibles à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_CHECK_CONSTRAINTS = Identifie les contraintes CHECK détenues par un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_COLLATIONS = Identifie les classements de caractères du catalogue accessibles à un utilisateur donné. (Niveau complet)
SQL_ISV_COLUMN_DOMAIN_USAGE = Identifie les colonnes du catalogue qui dépendent des domaines définis dans le catalogue et qui appartiennent à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_COLUMN_PRIVILEGES = Identifie les privilèges sur les colonnes de tables persistantes qui sont disponibles ou accordés par un utilisateur donné. (Niveau transitoire FIPS)
SQL_ISV_COLUMNS = Identifie les colonnes des tables persistantes accessibles par un utilisateur donné. (Niveau transitoire FIPS)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = Semblable à CONSTRAINT_TABLE_USAGE vue, les colonnes sont identifiées pour les différentes contraintes détenues par un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_CONSTRAINT_TABLE_USAGE = Identifie les tables utilisées par les contraintes (référentielles, uniques et assertions) et qui appartiennent à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_DOMAIN_CONSTRAINTS = Identifie les contraintes de domaine (des domaines du catalogue) accessibles par un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_DOMAINS = Identifie les domaines définis dans un catalogue accessibles par l’utilisateur. (Niveau intermédiaire)
SQL_ISV_KEY_COLUMN_USAGE = Identifie les colonnes définies dans le catalogue qui sont limitées en tant que clés par un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_REFERENTIAL_CONSTRAINTS = Identifie les contraintes référentielles qui appartiennent à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_SCHEMATA = Identifie les schémas appartenant à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_SQL_LANGUAGES = Identifie les niveaux de conformité SQL, les options et les dialectes pris en charge par l’implémentation SQL. (Niveau intermédiaire)
SQL_ISV_TABLE_CONSTRAINTS = Identifie les contraintes de table qui appartiennent à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_TABLE_PRIVILEGES = Identifie les privilèges sur les tables persistantes qui sont disponibles ou accordés par un utilisateur donné. (Niveau transitoire FIPS)
SQL_ISV_TABLES = Identifie les tables persistantes définies dans un catalogue accessibles à un utilisateur donné. (Niveau transitoire FIPS)
SQL_ISV_TRANSLATIONS = Identifie les traductions de caractères pour le catalogue qui sont accessibles par un utilisateur donné. (Niveau complet)
SQL_ISV_USAGE_PRIVILEGES = Identifie les privilèges USAGE sur les objets de catalogue qui sont disponibles ou détenus par un utilisateur donné. (Niveau transitoire FIPS)
SQL_ISV_VIEW_COLUMN_USAGE = Identifie les colonnes dont dépendent les vues du catalogue appartenant à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_VIEW_TABLE_USAGE = Identifie les tables dont dépendent les vues du catalogue appartenant à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_VIEWS = Identifie les tables consultées définies dans ce catalogue et accessibles à un utilisateur donné. (Niveau transitoire FIPS)
SQL_INSERT_STATEMENT 3.0 Masque de bits SQLUINTEGER qui indique la prise en charge des instructions INSERT :
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours toutes ces options prises en charge.
SQL_INTEGRITY 1.0 Chaîne de caractères : « Y » si la source de données prend en charge la fonctionnalité d’amélioration de l’intégrité ; « N » si ce n’est pas le cas.

Cette infoType a été renommée pour ODBC 3.0 à partir de l’SQL_ODBC_SQL_OPT_IEF d’infotype ODBC 2.0.
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur de jeu de clés pris en charge par le pilote. Ce masque de bits contient le premier sous-ensemble d’attributs ; pour le deuxième sous-ensemble, consultez SQL_KEYSET_CURSOR_ATTRIBUTES2.

Les masques de bits suivants sont utilisés pour déterminer quels attributs sont pris en charge :
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Pour obtenir une description de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur piloté par un jeu de clés » par « curseur dynamique » dans les descriptions).

Un pilote de niveau intermédiaire SQL-92 retourne généralement les options SQL_CA1_NEXT, SQL_CA1_ABSOLUTE et SQL_CA1_RELATIVE prises en charge, car le pilote prend en charge les curseurs pouvant faire défiler l’instruction FETCH SQL incorporée. Étant donné que cela ne détermine pas directement la prise en charge SQL sous-jacente, les curseurs défilables peuvent ne pas être pris en charge, même pour un pilote conforme au niveau intermédiaire SQL-92.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur de jeu de clés pris en charge par le pilote. Ce masque de bits contient le deuxième sous-ensemble d’attributs ; pour le premier sous-ensemble, consultez SQL_KEYSET_CURSOR_ATTRIBUTES1.

Les masques de bits suivants sont utilisés pour déterminer quels attributs sont pris en charge :
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Pour obtenir une description de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur piloté par un jeu de clés » par « curseur dynamique » dans les descriptions).
SQL_KEYWORDS 2.0 Chaîne de caractères qui contient une liste séparée par des virgules de tous les mots clés spécifiques à la source de données. Cette liste ne contient pas de mots clés spécifiques à ODBC ni de mots clés utilisés à la fois par la source de données et ODBC. Cette liste représente tous les mots clés réservés ; Les applications interopérables ne doivent pas utiliser ces mots dans les noms d’objets.

Pour obtenir la liste des mots clés ODBC, consultez Mots clés réservés à l’Annexe C : Grammaire SQL. La valeur #define SQL_ODBC_KEYWORDS contient une liste de mots clés ODBC séparés par des virgules.
SQL_LIKE_ESCAPE_CLAUSE 2.0 Chaîne de caractères : « Y » si la source de données prend en charge un caractère d’échappement pour le caractère de pourcentage (%) et le caractère de soulignement (_) dans un prédicat LIKE et si le pilote prend en charge la syntaxe ODBC pour définir un caractère d’échappement de prédicat LIKE ; « N » sinon.
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 Valeur SQLUINTEGER qui spécifie le nombre maximal d’instructions simultanées actives en mode asynchrone que le pilote peut prendre en charge sur une connexion donnée. S’il n’existe aucune limite spécifique ou si la limite est inconnue, cette valeur est égale à zéro.
SQL_MAX_BINARY_LITERAL_LEN 2.0 Valeur SQLUINTEGER qui spécifie la longueur maximale (nombre de caractères hexadécimaux, à l’exclusion du préfixe littéral et du suffixe retournés par SQLGetTypeInfo) d’un littéral binaire dans une instruction SQL. Par exemple, le littéral binaire 0xFFAA a une longueur de 4. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.
SQL_MAX_CATALOG_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de catalogue dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.

Un pilote fips conforme au niveau complet retourne au moins 128.

Cet InfoType a été renommé pour ODBC 3.0 à partir du SQL_MAX_QUALIFIER_NAME_LEN d’infotype ODBC 2.0.
SQL_MAX_CHAR_LITERAL_LEN 2.0 Valeur SQLUINTEGER qui spécifie la longueur maximale (nombre de caractères, à l’exclusion du préfixe littéral et du suffixe retournés par SQLGetTypeInfo) d’un littéral de caractère dans une instruction SQL. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.
SQL_MAX_COLUMN_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de colonne dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 18. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 128.
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de colonnes autorisées dans une clause GROUP BY . S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote fips conforme au niveau d’entrée retourne au moins 6. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 15.
SQL_MAX_COLUMNS_IN_INDEX 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de colonnes autorisées dans un index. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de colonnes autorisées dans une clause ORDER BY . S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote fips conforme au niveau d’entrée retourne au moins 6. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 15.
SQL_MAX_COLUMNS_IN_SELECT 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de colonnes autorisées dans une liste de sélection. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 100. Un pilote conforme au niveau intermédiaire FIPS retourne au moins 250.
SQL_MAX_COLUMNS_IN_TABLE 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de colonnes autorisées dans une table. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 100. Un pilote conforme au niveau intermédiaire FIPS retourne au moins 250.
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal d’instructions actives que le pilote peut prendre en charge pour une connexion. Une instruction est définie comme active si des résultats sont en attente, le terme « results » désignant des lignes d’une opération SELECT ou des lignes affectées par une opération INSERT, UPDATE ou DELETE (par exemple, un nombre de lignes), ou si elle est dans un état NEED_DATA. Cette valeur peut refléter une limitation imposée par le pilote ou la source de données. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Cet InfoType a été renommé pour ODBC 3.0 à partir de l’infotype ODBC 2.0 SQL_ACTIVE_STATEMENTS.
SQL_MAX_CURSOR_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de curseur dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 18. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 128.
SQL_MAX_DRIVER_CONNECTIONS 1.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de connexions actives que le pilote peut prendre en charge pour un environnement. Cette valeur peut refléter une limitation imposée par le pilote ou la source de données. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Cet InfoType a été renommé pour ODBC 3.0 à partir de l’infotype ODBC 2.0 SQL_ACTIVE_CONNECTIONS.
SQL_MAX_IDENTIFIER_LEN 3.0 SQLUSMALLINT qui indique la taille maximale en caractères prise en charge par la source de données pour les noms définis par l’utilisateur.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 18. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 128.
SQL_MAX_INDEX_SIZE 2.0 Valeur SQLUINTEGER qui spécifie le nombre maximal d’octets autorisés dans les champs combinés d’un index. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.
SQL_MAX_PROCEDURE_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de procédure dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.
SQL_MAX_ROW_SIZE 2.0 Valeur SQLUINTEGER qui spécifie la longueur maximale d’une seule ligne dans une table. S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 2 000. Un pilote conforme au niveau intermédiaire FIPS retourne au moins 8 000.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 Chaîne de caractères : « Y » si la taille de ligne maximale retournée pour le type d’informations SQL_MAX_ROW_SIZE inclut la longueur de toutes les colonnes SQL_LONGVARCHAR et SQL_LONGVARBINARY de la ligne ; « N » sinon.
SQL_MAX_SCHEMA_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de schéma dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 18. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 128.

Cet InfoType a été renommé pour ODBC 3.0 à partir de l’infotype ODBC 2.0 SQL_MAX_OWNER_NAME_LEN.
SQL_MAX_STATEMENT_LEN 2.0 Valeur SQLUINTEGER qui spécifie la longueur maximale (nombre de caractères, espace compris) d’une instruction SQL. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.
SQL_MAX_TABLE_NAME_LEN 1.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom de table dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 18. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 128.
SQL_MAX_TABLES_IN_SELECT 2.0 Valeur SQLUSMALLINT qui spécifie le nombre maximal de tables autorisées dans la clause FROM d’une instruction SELECT . S’il n’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.

Un pilote conforme au niveau d’entrée FIPS retourne au moins 15. Un pilote conforme au niveau INTERMÉDIAIRE FIPS retourne au moins 50.
SQL_MAX_USER_NAME_LEN 2.0 Valeur SQLUSMALLINT qui spécifie la longueur maximale d’un nom d’utilisateur dans la source de données. S’il n’y a pas de longueur maximale ou si la longueur est inconnue, cette valeur est définie sur zéro.
SQL_MULT_RESULT_SETS 1.0 Chaîne de caractères : « Y » si la source de données prend en charge plusieurs jeux de résultats, « N » si ce n’est pas le cas.

Pour plus d’informations sur plusieurs jeux de résultats, consultez Résultats multiples.
SQL_MULTIPLE_ACTIVE_TXN 1.0 Chaîne de caractères : « Y » si le pilote prend en charge plusieurs transactions actives en même temps, « N » si une seule transaction peut être active à tout moment.

Les informations retournées pour ce type d’informations ne s’appliquent pas dans le cas de transactions distribuées.
SQL_NEED_LONG_DATA_LEN 2.0 Chaîne de caractères : « Y » si la source de données a besoin de la longueur d’une valeur de données longue (le type de données est SQL_LONGVARCHAR, SQL_LONGVARBINARY ou un type de données spécifique à la source de données longue) avant que cette valeur ne soit envoyée à la source de données, « N » si ce n’est pas le cas. Pour plus d’informations, consultez Fonction SQLBindParameter et Fonction SQLSetPos.
SQL_NON_NULLABLE_COLUMNS 1.0 Valeur SQLUSMALLINT qui spécifie si la source de données prend en charge NOT NULL dans les colonnes :
SQL_NNC_NULL = Toutes les colonnes doivent avoir la valeur Null.
SQL_NNC_NON_NULL = Les colonnes ne peuvent pas avoir la valeur Null. (La source de données prend en charge la contrainte de colonne NOT NULL dans les instructions CREATE TABLE .)

Un pilote sql-92 conforme au niveau d’entrée retourne SQL_NNC_NON_NULL.
SQL_NULL_COLLATION 2.0 Valeur SQLUSMALLINT qui spécifie où les VALEURS NULL sont triées dans un jeu de résultats :
SQL_NC_END = LES VALEURS NULL sont triées à la fin du jeu de résultats, quels que soient les mots clés ASC ou DESC.
SQL_NC_HIGH = LES VALEURS NULL sont triées à l’extrémité supérieure du jeu de résultats, en fonction des mots clés ASC ou DESC.
SQL_NC_LOW = LES VALEURS NULL sont triées à l’extrémité inférieure du jeu de résultats, en fonction des mots clés ASC ou DESC.
SQL_NC_START = LES VALEURS NULL sont triées au début du jeu de résultats, quels que soient les mots clés ASC ou DESC.
SQL_NUMERIC_FUNCTIONS 1.0 Remarque : Le type d’informations a été introduit dans ODBC 1.0 ; chaque masque de bits est étiqueté avec la version dans laquelle il a été introduit.

Masque de bits SQLUINTEGER énumérant les fonctions numériques scalaires prises en charge par le pilote et la source de données associée.

Les masques de bits suivants sont utilisés pour déterminer les fonctions numériques prises en charge :
SQL_FN_NUM_ABS (ODBC 1.0)
SQL_FN_NUM_ACOS (ODBC 1.0)
SQL_FN_NUM_ASIN (ODBC 1.0)
SQL_FN_NUM_ATAN (ODBC 1.0)
SQL_FN_NUM_ATAN2 (ODBC 1.0)
SQL_FN_NUM_CEILING (ODBC 1.0)
SQL_FN_NUM_COS (ODBC 1.0)
SQL_FN_NUM_COT (ODBC 1.0)
SQL_FN_NUM_DEGREES (ODBC 2.0)
SQL_FN_NUM_EXP (ODBC 1.0)
SQL_FN_NUM_FLOOR (ODBC 1.0)
SQL_FN_NUM_LOG (ODBC 1.0)
SQL_FN_NUM_LOG10 (ODBC 2.0)
SQL_FN_NUM_MOD (ODBC 1.0)
SQL_FN_NUM_PI (ODBC 1.0)
SQL_FN_NUM_POWER (ODBC 2.0)
SQL_FN_NUM_RADIANS (ODBC 2.0)
SQL_FN_NUM_RAND (ODBC 1.0)
SQL_FN_NUM_ROUND (ODBC 2.0)
SQL_FN_NUM_SIGN (ODBC 1.0)
SQL_FN_NUM_SIN (ODBC 1.0)
SQL_FN_NUM_SQRT (ODBC 1.0)
SQL_FN_NUM_TAN (ODBC 1.0)
SQL_FN_NUM_TRUNCATE (ODBC 2.0)
SQL_ODBC_INTERFACE_CONFORMANCE 3.0 Valeur SQLUINTEGER qui indique le niveau de l’interface ODBC 3*.x* que le pilote respecte.

SQL_OIC_CORE : niveau minimal auquel tous les pilotes ODBC sont censés se conformer. Ce niveau inclut des éléments d’interface de base tels que les fonctions de connexion, les fonctions de préparation et d’exécution d’une instruction SQL, les fonctions de métadonnées de jeu de résultats de base, les fonctions de catalogue de base, etc.
SQL_OIC_LEVEL1 : niveau comprenant les fonctionnalités de niveau de conformité des normes de base, ainsi que les curseurs à défilement, les signets, les mises à jour et les suppressions positionnées, etc.
SQL_OIC_LEVEL2 : un niveau incluant les fonctionnalités de niveau de conformité de niveau 1, ainsi que des fonctionnalités avancées telles que les curseurs sensibles ; mettre à jour, supprimer et actualiser par signets ; prise en charge des procédures stockées ; fonctions de catalogue pour les clés primaires et étrangères ; prise en charge de plusieurs catalogues ; et ainsi de suite.

Pour plus d’informations, consultez Niveaux de conformité de l’interface.
SQL_ODBC_VER 1.0 Chaîne de caractères avec la version d’ODBC à laquelle le Gestionnaire de pilotes est conforme. La version est de la forme ##.##.0000, où les deux premiers chiffres sont la version principale et les deux chiffres suivants sont la version mineure. Cette opération est implémentée uniquement dans le Gestionnaire de pilotes.
SQL_OJ_CAPABILITIES 2,01 Masque de bits SQLUINTEGER énumérant les types de jointures externes prises en charge par le pilote et la source de données. Les masques de bits suivants sont utilisés pour déterminer les types pris en charge :
SQL_OJ_LEFT = Les jointures externes gauches sont prises en charge.
SQL_OJ_RIGHT = Les jointures externes droites sont prises en charge.
SQL_OJ_FULL = Les jointures externes complètes sont prises en charge.
SQL_OJ_NESTED = Les jointures externes imbriquées sont prises en charge.
SQL_OJ_NOT_ORDERED = Les noms de colonnes dans la clause ON de la jointure externe ne doivent pas être dans le même ordre que leurs noms de table respectifs dans la clause OUTER JOIN .
SQL_OJ_INNER = La table interne (la table de droite dans une jointure externe gauche ou la table de gauche dans une jointure externe droite) peut également être utilisée dans une jointure interne. Cela ne s’applique pas aux jointures externes complètes, qui n’ont pas de table interne.
SQL_OJ_ALL_COMPARISON_OPS = L’opérateur de comparaison dans la clause ON peut être l’un des opérateurs de comparaison ODBC. Si ce bit n’est pas défini, seul l’opérateur de comparaison égal à (=) peut être utilisé dans les jointures externes.

Si aucune de ces options n’est retournée comme étant prise en charge, aucune clause de jointure externe n’est prise en charge.

Pour plus d’informations sur la prise en charge des opérateurs de jointure relationnelle dans une instruction SELECT, comme défini par SQL-92, consultez SQL_SQL92_RELATIONAL_JOIN_OPERATORS.
SQL_ORDER_BY_COLUMNS_IN_SELECT 2.0 Chaîne de caractères : « Y » si les colonnes de la clause ORDER BY doivent figurer dans la liste de sélection ; sinon, « N ».
SQL_PARAM_ARRAY_ROW_COUNTS 3.0 SQLUINTEGER énumérant les propriétés du pilote concernant la disponibilité du nombre de lignes dans une exécution paramétrable. A les valeurs suivantes :
SQL_PARC_BATCH = Le nombre de lignes individuelles est disponible pour chaque ensemble de paramètres. D’un point de vue conceptuel, cela équivaut au pilote qui génère un lot d’instructions SQL, un pour chaque ensemble de paramètres dans le tableau. Les informations d’erreur étendues peuvent être récupérées à l’aide du champ descripteur SQL_PARAM_STATUS_PTR.
SQL_PARC_NO_BATCH = Il n’y a qu’un seul nombre de lignes disponible, c’est-à-dire le nombre cumulé de lignes résultant de l’exécution de l’instruction pour l’ensemble du tableau de paramètres. D’un point de vue conceptuel, cela revient à traiter l’instruction avec le tableau de paramètres complet comme une unité atomique. Les erreurs sont gérées de la même façon que si une instruction était exécutée.
SQL_PARAM_ARRAY_SELECTS 3.0 SQLUINTEGER énumérant les propriétés du pilote concernant la disponibilité des jeux de résultats dans une exécution paramétrable. A les valeurs suivantes :
SQL_PAS_BATCH = Un jeu de résultats est disponible par jeu de paramètres. Cela équivaut au pilote qui génère un lot d’instructions SQL, une pour chaque jeu de paramètres dans le tableau.
SQL_PAS_NO_BATCH = Il n’existe qu’un seul jeu de résultats disponible, qui représente le jeu de résultats cumulatifs résultant de l’exécution de l’instruction pour le tableau complet de paramètres. Cela équivaut conceptuellement à traiter l’instruction avec le tableau de paramètres complet comme une unité atomique.
SQL_PAS_NO_SELECT = Un pilote n’autorise pas l’exécution d’une instruction de génération de jeux de résultats avec un tableau de paramètres.
SQL_POS_OPERATIONS 2.0 Masque de bits SQLINTEGER énumérant les opérations de prise en charge dans SQLSetPos.

Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer les options prises en charge.
SQL_POS_POSITION (ODBC 2.0)
SQL_POS_REFRESH (ODBC 2.0)
SQL_POS_UPDATE (ODBC 2.0)
SQL_POS_DELETE (ODBC 2.0)
SQL_POS_ADD (ODBC 2.0)
SQL_PROCEDURE_TERM 1.0 Chaîne de caractères avec le nom du fournisseur de la source de données pour une procédure ; par exemple, « procédure de base de données », « procédure stockée », « procédure », « package » ou « requête stockée ».
SQL_PROCEDURES 1.0 Chaîne de caractères : « Y » si la source de données prend en charge les procédures et que le pilote prend en charge la syntaxe d’appel de procédure ODBC ; « N » sinon.
SQL_QUOTED_IDENTIFIER_CASE 2.0 Valeur SQLUSMALLINT comme suit :
SQL_IC_UPPER = Les identificateurs entre guillemets dans SQL ne respectent pas la casse et sont stockés en majuscules dans le catalogue système.
SQL_IC_LOWER = Les identificateurs entre guillemets dans SQL ne respectent pas la casse et sont stockés en minuscules dans le catalogue système.
SQL_IC_SENSITIVE = Les identificateurs entre guillemets dans SQL respectent la casse et sont stockés en cas mixte dans le catalogue système. (Dans une base de données conforme à SQL-92, les identificateurs entre guillemets respectent toujours la casse.)
SQL_IC_MIXED = Les identificateurs entre guillemets dans SQL ne respectent pas la casse et sont stockés en casse mixte dans le catalogue système.

Un pilote sql-92 conforme au niveau d’entrée retourne toujours SQL_IC_SENSITIVE.
SQL_ROW_UPDATES 1.0 Chaîne de caractères : « Y » si un curseur piloté par un jeu de clés ou un curseur mixte conserve des versions ou des valeurs de ligne pour toutes les lignes extraites et peut donc détecter les mises à jour apportées à une ligne par n’importe quel utilisateur depuis la dernière extraction de la ligne. (Cela s’applique uniquement aux mises à jour, pas aux suppressions ou aux insertions.) Le pilote peut renvoyer l’indicateur SQL_ROW_UPDATED au tableau d’état des lignes lorsque SQLFetchScroll est appelé. Sinon, « N ».
SQL_SCHEMA_TERM 1.0 Chaîne de caractères avec le nom du fournisseur de la source de données pour un schéma ; par exemple, « owner », « ID d’autorisation » ou « Schema ».

La chaîne de caractères peut être retournée en majuscules, inférieures ou mixtes.

Un pilote sql-92 conforme au niveau d’entrée retourne toujours le « schéma ».

Cet InfoType a été renommé pour ODBC 3.0 à partir du SQL_OWNER_TERM d’infotype ODBC 2.0.
SQL_SCHEMA_USAGE 2.0 Masque de bits SQLUINTEGER énumérant les instructions dans lesquelles les schémas peuvent être utilisés :
SQL_SU_DML_STATEMENTS = Les schémas sont pris en charge dans toutes les instructions de langage de manipulation de données : SELECT, INSERT, UPDATE, DELETE et, si elles sont prises en charge, SELECT FOR UPDATE et les instructions de mise à jour et de suppression positionnées.
SQL_SU_PROCEDURE_INVOCATION = Les schémas sont pris en charge dans l’instruction d’appel de procédure ODBC.
SQL_SU_TABLE_DEFINITION = Les schémas sont pris en charge dans toutes les instructions de définition de table : CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE et DROP VIEW.
SQL_SU_INDEX_DEFINITION = Les schémas sont pris en charge dans toutes les instructions de définition d’index : CREATE INDEX et DROP INDEX.
SQL_SU_PRIVILEGE_DEFINITION = Les schémas sont pris en charge dans toutes les instructions de définition de privilèges : GRANT et REVOKE.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours les options SQL_SU_DML_STATEMENTS, SQL_SU_TABLE_DEFINITION et SQL_SU_PRIVILEGE_DEFINITION, telles que prises en charge.

Cet InfoType a été renommé pour ODBC 3.0 à partir du SQL_OWNER_USAGE d’infotype ODBC 2.0.
SQL_SCROLL_OPTIONS 1.0 Remarque : Le type d’informations a été introduit dans ODBC 1.0 ; chaque masque de bits est étiqueté avec la version dans laquelle il a été introduit.

Masque de bits SQLUINTEGER énumérant les options de défilement prises en charge pour les curseurs pouvant faire défiler.

Les masques de bits suivants sont utilisés pour déterminer les options prises en charge :
SQL_SO_FORWARD_ONLY = Le curseur défile uniquement vers l’avant. (ODBC 1.0)
SQL_SO_STATIC = Les données du jeu de résultats sont statiques. (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = Le pilote enregistre et utilise les clés pour chaque ligne du jeu de résultats. (ODBC 1.0)
SQL_SO_DYNAMIC = Le pilote conserve les clés pour chaque ligne de l’ensemble de lignes (la taille du jeu de clés est identique à la taille de l’ensemble de lignes). (ODBC 1.0)
SQL_SO_MIXED = Le pilote conserve les clés pour chaque ligne du jeu de clés, et la taille du jeu de clés est supérieure à la taille de l’ensemble de lignes. Le curseur est piloté par un jeu de clés à l’intérieur du jeu de clés et dynamique à l’extérieur du jeu de clés. (ODBC 1.0)

Pour plus d’informations sur les curseurs pouvant faire défiler, consultez Curseurs défilants.
SQL_SEARCH_PATTERN_ESCAPE 1.0 Chaîne de caractères spécifiant ce que le pilote prend en charge en tant que caractère d’échappement qui permet d’utiliser le trait de soulignement (_) des métacharacteurs de modèle et le signe de pourcentage (%) en tant que caractères valides dans les modèles de recherche. Ce caractère d’échappement s’applique uniquement aux arguments de fonction de catalogue qui prennent en charge les chaînes de recherche. Si cette chaîne est vide, le pilote ne prend pas en charge un caractère d’échappement de modèle de recherche.

Étant donné que ce type d’informations n’indique pas la prise en charge générale du caractère d’échappement dans le prédicat LIKE , SQL-92 n’inclut pas les exigences pour cette chaîne de caractères.

Cet InfoType est limité aux fonctions de catalogue. Pour obtenir une description de l’utilisation du caractère d’échappement dans les chaînes de modèle de recherche, consultez Arguments de valeur de modèle.
SQL_SERVER_NAME 1.0 Chaîne de caractères avec le nom réel du serveur spécifique à la source de données ; utile quand un nom de source de données est utilisé pendant SQLConnect, SQLDriverConnect et SQLBrowseConnect.
SQL_SPECIAL_CHARACTERS 2.0 Chaîne de caractères qui contient tous les caractères spéciaux (c’est-à-dire tous les caractères à l’exception de z, de A à Z, de 0 à 9 et de trait de soulignement) qui peuvent être utilisés dans un nom d’identificateur, tel qu’un nom de table, un nom de colonne ou un nom d’index, sur la source de données. Par exemple, « #$^ ». Si un identificateur contient un ou plusieurs de ces caractères, l’identificateur doit être un identificateur délimité.
SQL_SQL_CONFORMANCE 3.0 Valeur SQLUINTEGER qui indique le niveau de SQL-92 pris en charge par le pilote :
SQL_SC_SQL92_ENTRY = Conforme SQL-92 de niveau d’entrée.
SQL_SC_FIPS127_2_TRANSITIONAL = conformité au niveau transitoire FIPS 127-2.
SQL_SC_SQL92_FULL = Conformité SQL-92 de niveau complet.
SQL_SC_ SQL92_INTERMEDIATE = Niveau intermédiaire conforme à SQL-92.
SQL_SQL92_DATETIME_FUNCTIONS 3.0 Masque de bits SQLUINTEGER énumérant les fonctions scalaires datetime prises en charge par le pilote et la source de données associée, comme défini dans SQL-92.

Les masques de bits suivants sont utilisés pour déterminer quelles fonctions datetime sont prises en charge :
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 Masque de bits SQLUINTEGER énumérant les règles prises en charge pour une clé étrangère dans une instruction DELETE , comme défini dans SQL-92.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge par la source de données :
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

Un pilote conforme au niveau transitoire FIPS retourne toujours toutes ces options prises en charge.
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 Masque de bits SQLUINTEGER énumérant les règles prises en charge pour une clé étrangère dans une instruction UPDATE , comme défini dans SQL-92.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge par la source de données :
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

Un pilote de niveau complet SQL-92 retourne toujours toutes ces options prises en charge.
SQL_SQL92_GRANT 3.0 Masque de bits SQLUINTEGER énumérant les clauses prises en charge dans l’instruction GRANT , comme défini dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge par la source de données :
SQL_SG_DELETE_TABLE (niveau d’entrée)
SQL_SG_INSERT_COLUMN (niveau intermédiaire)
SQL_SG_INSERT_TABLE (niveau d’entrée)
SQL_SG_REFERENCES_TABLE (niveau d’entrée)
SQL_SG_REFERENCES_COLUMN (niveau d’entrée)
SQL_SG_SELECT_TABLE (niveau d’entrée)
SQL_SG_UPDATE_COLUMN (niveau d’entrée)
SQL_SG_UPDATE_TABLE (niveau d’entrée)
SQL_SG_USAGE_ON_DOMAIN (niveau transitoire FIPS)
SQL_SG_USAGE_ON_CHARACTER_SET (niveau transitoire FIPS)
SQL_SG_USAGE_ON_COLLATION (niveau transitoire FIPS)
SQL_SG_USAGE_ON_TRANSLATION (niveau transitoire FIPS)
SQL_SG_WITH_GRANT_OPTION (niveau d’entrée)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3.0 Masque de bits SQLUINTEGER énumérant les fonctions scalaires de valeur numérique prises en charge par le pilote et la source de données associée, comme défini dans SQL-92.

Les masques de bits suivants sont utilisés pour déterminer quelles fonctions numériques sont prises en charge :
SQL_SNVF_BIT_LENGTH
SQL_SNVF_CHAR_LENGTH
SQL_SNVF_CHARACTER_LENGTH
SQL_SNVF_EXTRACT
SQL_SNVF_OCTET_LENGTH
SQL_SNVF_POSITION
SQL_SQL92_PREDICATES 3.0 Masque de bits SQLUINTEGER énumérant les prédicats pris en charge dans une instruction SELECT , comme défini dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les options prises en charge par la source de données :
SQL_SP_BETWEEN (niveau d’entrée)
SQL_SP_COMPARISON (niveau d’entrée)
SQL_SP_EXISTS (niveau d’entrée)
SQL_SP_IN (niveau d’entrée)
SQL_SP_ISNOTNULL (niveau d’entrée)
SQL_SP_ISNULL (niveau d’entrée)
SQL_SP_LIKE (niveau d’entrée)
SQL_SP_MATCH_FULL (niveau complet)
SQL_SP_MATCH_PARTIAL(niveau complet)
SQL_SP_MATCH_UNIQUE_FULL (niveau complet)
SQL_SP_MATCH_UNIQUE_PARTIAL (niveau complet)
SQL_SP_OVERLAPS (niveau transitoire FIPS)
SQL_SP_QUANTIFIED_COMPARISON (niveau d’entrée)
SQL_SP_UNIQUE (niveau d’entrée)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3.0 Masque de bits SQLUINTEGER énumérant les opérateurs de jointure relationnelle pris en charge dans une instruction SELECT , comme défini dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les options prises en charge par la source de données :
SQL_SRJO_CORRESPONDING_CLAUSE (niveau intermédiaire)
SQL_SRJO_CROSS_JOIN (niveau complet)
SQL_SRJO_EXCEPT_JOIN (niveau intermédiaire)
SQL_SRJO_FULL_OUTER_JOIN (niveau intermédiaire)
SQL_SRJO_INNER_JOIN (niveau transitoire FIPS)
SQL_SRJO_INTERSECT_JOIN (niveau intermédiaire)
SQL_SRJO_LEFT_OUTER_JOIN (niveau transitoire FIPS)
SQL_SRJO_NATURAL_JOIN (niveau transitoire FIPS)
SQL_SRJO_RIGHT_OUTER_JOIN (niveau transitoire FIPS)
SQL_SRJO_UNION_JOIN (niveau complet)

SQL_SRJO_INNER_JOIN indique la prise en charge de la syntaxe INNER JOIN , et non de la fonctionnalité de jointure interne. La prise en charge de la syntaxe INNER JOIN est FIPS TRANSITIONAL, tandis que la prise en charge de la fonctionnalité de jointure interne est ENTRY.
SQL_SQL92_REVOKE 3.0 Masque de bits SQLUINTEGER énumérant les clauses prises en charge dans l’instruction REVOKE , telles que définies dans SQL-92, prises en charge par la source de données.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les clauses prises en charge par la source de données :
SQL_SR_CASCADE (niveau transitoire FIPS)
SQL_SR_DELETE_TABLE (niveau d’entrée)
SQL_SR_GRANT_OPTION_FOR (niveau intermédiaire)
SQL_SR_INSERT_COLUMN (niveau intermédiaire)
SQL_SR_INSERT_TABLE (niveau d’entrée)
SQL_SR_REFERENCES_COLUMN (niveau d’entrée)
SQL_SR_REFERENCES_TABLE (niveau d’entrée)
SQL_SR_RESTRICT (niveau transitoire FIPS)
SQL_SR_SELECT_TABLE (niveau d’entrée)
SQL_SR_UPDATE_COLUMN (niveau d’entrée)
SQL_SR_UPDATE_TABLE (niveau d’entrée)
SQL_SR_USAGE_ON_DOMAIN (niveau transitoire FIPS)
SQL_SR_USAGE_ON_CHARACTER_SET (niveau transitoire FIPS)
SQL_SR_USAGE_ON_COLLATION (niveau transitoire FIPS)
SQL_SR_USAGE_ON_TRANSLATION (niveau transitoire FIPS)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3.0 Masque de bits SQLUINTEGER énumérant les expressions de constructeur de valeur de ligne prises en charge dans une instruction SELECT , comme défini dans SQL-92. Les masques de bits suivants sont utilisés pour déterminer les options prises en charge par la source de données :
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 Masque de bits SQLUINTEGER énumérant les fonctions scalaires de chaîne prises en charge par le pilote et la source de données associée, comme défini dans SQL-92.

Les masques de bits suivants sont utilisés pour déterminer les fonctions de chaîne prises en charge :
SQL_SSF_CONVERT
SQL_SSF_LOWERSQL_SSF_UPPER
SQL_SSF_SUBSTRING
SQL_SSF_TRANSLATE
SQL_SSF_TRIM_BOTH
SQL_SSF_TRIM_LEADING
SQL_SSF_TRIM_TRAILING
SQL_SQL92_VALUE_EXPRESSIONS 3.0 Masque de bits SQLUINTEGER énumérant les expressions de valeur prises en charge, comme défini dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est indiqué entre parenthèses en regard de chaque masque de bits.

Les masques de bits suivants sont utilisés pour déterminer les options prises en charge par la source de données :
SQL_SVE_CASE (niveau intermédiaire)
SQL_SVE_CAST (niveau transitoire FIPS)
SQL_SVE_COALESCE (niveau intermédiaire)
SQL_SVE_NULLIF (niveau intermédiaire)
SQL_STANDARD_CLI_CONFORMANCE 3.0 Masque de bits SQLUINTEGER énumérant la ou les normes CLI standard auxquelles le pilote est conforme. Les masques de bits suivants sont utilisés pour déterminer les niveaux auxquels le pilote se conforme :
SQL_SCC_XOPEN_CLI_VERSION1 : le pilote est conforme à la version 1 de l’interface CLI Open Group.
SQL_SCC_ISO92_CLI : le pilote est conforme à l’interface CLI ISO 92.
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur statique pris en charge par le pilote. Ce masque de bits contient le premier sous-ensemble d’attributs ; pour le deuxième sous-ensemble, consultez SQL_STATIC_CURSOR_ATTRIBUTES2.

Les masques de bits suivants sont utilisés pour déterminer quels attributs sont pris en charge :
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Pour obtenir une description de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur statique » par « curseur dynamique » dans les descriptions).

Un pilote de niveau intermédiaire SQL-92 retourne généralement les options SQL_CA1_NEXT, SQL_CA1_ABSOLUTE et SQL_CA1_RELATIVE prises en charge, car le pilote prend en charge les curseurs pouvant faire défiler l’instruction FETCH SQL incorporée. Étant donné que cela ne détermine pas directement la prise en charge SQL sous-jacente, les curseurs défilables peuvent ne pas être pris en charge, même pour un pilote conforme au niveau intermédiaire SQL-92.
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur statique pris en charge par le pilote. Ce masque de bits contient le deuxième sous-ensemble d’attributs ; pour le premier sous-ensemble, consultez SQL_STATIC_CURSOR_ATTRIBUTES1.

Les masques de bits suivants sont utilisés pour déterminer quels attributs sont pris en charge :
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Pour obtenir des descriptions de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (et remplacez « curseur statique » par « curseur dynamique » dans les descriptions).
SQL_STRING_FUNCTIONS 1.0 Remarque : Le type d’informations a été introduit dans ODBC 1.0 ; chaque masque de bits est étiqueté avec la version dans laquelle il a été introduit.

Masque de bits SQLUINTEGER énumérant les fonctions de chaîne scalaire prises en charge par le pilote et la source de données associée.

Les masques de bits suivants sont utilisés pour déterminer les fonctions de chaîne prises en charge :
SQL_FN_STR_ASCII (ODBC 1.0)
SQL_FN_STR_BIT_LENGTH (ODBC 3.0)
SQL_FN_STR_CHAR (ODBC 1.0)
SQL_FN_STR_CHAR_LENGTH (ODBC 3.0)
SQL_FN_STR_CHARACTER_LENGTH (ODBC 3.0)
SQL_FN_STR_CONCAT (ODBC 1.0)
SQL_FN_STR_DIFFERENCE (ODBC 2.0)
SQL_FN_STR_INSERT (ODBC 1.0)
SQL_FN_STR_LCASE (ODBC 1.0)
SQL_FN_STR_LEFT (ODBC 1.0)
SQL_FN_STR_LENGTH (ODBC 1.0)
SQL_FN_STR_LOCATE (ODBC 1.0)
SQL_FN_STR_LTRIM (ODBC 1.0)
SQL_FN_STR_OCTET_LENGTH (ODBC 3.0)
SQL_FN_STR_POSITION (ODBC 3.0)
SQL_FN_STR_REPEAT (ODBC 1.0)
SQL_FN_STR_REPLACE (ODBC 1.0)
SQL_FN_STR_RIGHT (ODBC 1.0)
SQL_FN_STR_RTRIM (ODBC 1.0)
SQL_FN_STR_SOUNDEX (ODBC 2.0)
SQL_FN_STR_SPACE (ODBC 2.0)
SQL_FN_STR_SUBSTRING (ODBC 1.0)
SQL_FN_STR_UCASE (ODBC 1.0)

Si une application peut appeler la fonction scalaire LOCATE avec les arguments string_exp1, string_exp2 et de début , le pilote retourne le masque de bits SQL_FN_STR_LOCATE. Si une application peut appeler la fonction scalaire LOCATE avec uniquement les arguments string_exp1 et string_exp2 , le pilote retourne le masque de bits SQL_FN_STR_LOCATE_2. Les pilotes qui prennent entièrement en charge la fonction scalaire LOCATE retournent les deux masques de bits.

(Pour plus d’informations, consultez Fonctions de chaîne à l’Annexe E, « Fonctions scalaires »).
SQL_SUBQUERIES 2.0 Masque de bits SQLUINTEGER énumérant les prédicats qui prennent en charge les sous-requêtes :
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

Le masque de bits SQL_SQ_CORRELATED_SUBQUERIES indique que tous les prédicats qui prennent en charge les sous-requêtes prennent en charge les sous-requêtes corrélées.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours un masque de bits dans lequel tous ces bits sont définis.
SQL_SYSTEM_FUNCTIONS 1.0 Masque de bits SQLUINTEGER énumérant les fonctions système scalaires prises en charge par le pilote et la source de données associée.

Les masques de bits suivants sont utilisés pour déterminer les fonctions système prises en charge :
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 Chaîne de caractères avec le nom du fournisseur de la source de données pour une table ; par exemple, « table » ou « file ».

Cette chaîne de caractères peut être en majuscules, inférieures ou mixtes.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours « table ».
SQL_TIMEDATE_ADD_INTERVALS 2.0 Masque de bits SQLUINTEGER énumérant les intervalles d’horodatage pris en charge par le pilote et la source de données associée pour la fonction scalaire TIMESTAMPADD.

Les masques de bits suivants sont utilisés pour déterminer les intervalles pris en charge :
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Un pilote conforme au niveau transitionnel FIPS retourne toujours un masque de bits dans lequel tous ces bits sont définis.
SQL_TIMEDATE_DIFF_INTERVALS 2.0 Masque de bits SQLUINTEGER énumérant les intervalles d’horodatage pris en charge par le pilote et la source de données associée pour la fonction scalaire TIMESTAMPDIFF.

Les masques de bits suivants sont utilisés pour déterminer les intervalles pris en charge :
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Un pilote conforme au niveau transitionnel FIPS retourne toujours un masque de bits dans lequel tous ces bits sont définis.
SQL_TIMEDATE_FUNCTIONS 1.0 Remarque : Le type d’informations a été introduit dans ODBC 1.0 ; chaque masque de bits est étiqueté avec la version dans laquelle il a été introduit.

Masque de bits SQLUINTEGER énumérant les fonctions scalaires de date et d’heure prises en charge par le pilote et la source de données associée.

Les masques de bits suivants sont utilisés pour déterminer quelles fonctions de date et d’heure sont prises en charge :
SQL_FN_TD_CURRENT_DATE (ODBC 3.0)
SQL_FN_TD_CURRENT_TIME (ODBC 3.0)
SQL_FN_TD_CURRENT_TIMESTAMP (ODBC 3.0)
SQL_FN_TD_CURDATE (ODBC 1.0)
SQL_FN_TD_CURTIME (ODBC 1.0)
SQL_FN_TD_DAYNAME (ODBC 2.0)
SQL_FN_TD_DAYOFMONTH (ODBC 1.0)
SQL_FN_TD_DAYOFWEEK (ODBC 1.0)
SQL_FN_TD_DAYOFYEAR (ODBC 1.0)
SQL_FN_TD_EXTRACT (ODBC 3.0)
SQL_FN_TD_HOUR (ODBC 1.0)
SQL_FN_TD_MINUTE (ODBC 1.0)
SQL_FN_TD_MONTH (ODBC 1.0)
SQL_FN_TD_MONTHNAME (ODBC 2.0)
SQL_FN_TD_NOW (ODBC 1.0)
SQL_FN_TD_QUARTER (ODBC 1.0)
SQL_FN_TD_SECOND (ODBC 1.0)
SQL_FN_TD_TIMESTAMPADD (ODBC 2.0)
SQL_FN_TD_TIMESTAMPDIFF (ODBC 2.0)
SQL_FN_TD_WEEK (ODBC 1.0)
SQL_FN_TD_YEAR (ODBC 1.0)
SQL_TXN_CAPABLE 1.0 Remarque : Le type d’informations a été introduit dans ODBC 1.0 ; chaque valeur de retour est étiquetée avec la version dans laquelle elle a été introduite.

Valeur SQLUSMALLINT décrivant la prise en charge des transactions dans le pilote ou la source de données :
SQL_TC_NONE = Transactions non prises en charge. (ODBC 1.0)
SQL_TC_DML = Les transactions peuvent contenir uniquement des instructions DML (DATA Manipulation Language) (SELECT, INSERT, UPDATE, DELETE). Les instructions DDL (Data Definition Language) rencontrées dans une transaction provoquent une erreur. (ODBC 1.0)
SQL_TC_DDL_COMMIT = Les transactions ne peuvent contenir que des instructions DML. Les instructions DDL (CREATE TABLE, DROP INDEX, etc.) rencontrées dans une transaction entraînent la validation de la transaction. (ODBC 2.0)
SQL_TC_DDL_IGNORE = Les transactions peuvent contenir uniquement des instructions DML. Les instructions DDL rencontrées dans une transaction sont ignorées. (ODBC 2.0)
SQL_TC_ALL = Les transactions peuvent contenir des instructions DDL et des instructions DML dans n’importe quel ordre. (ODBC 1.0)

(Étant donné que la prise en charge des transactions est obligatoire dans SQL-92, un pilote conforme SQL-92 [n’importe quel niveau] ne retournera jamais SQL_TC_NONE.)
SQL_TXN_ISOLATION_OPTION 1.0 Masque de bits SQLUINTEGER énumérant les niveaux d’isolation des transactions disponibles à partir du pilote ou de la source de données.

Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer les options prises en charge :
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

Pour obtenir une description de ces niveaux d’isolation, consultez la description de SQL_DEFAULT_TXN_ISOLATION.

Pour définir le niveau d’isolation des transactions, une application appelle SQLSetConnectAttr pour définir l’attribut SQL_ATTR_TXN_ISOLATION. Pour plus d’informations, consultez FONCTION SQLSetConnectAttr.

Un pilote sql-92 conforme au niveau d’entrée retourne toujours SQL_TXN_SERIALIZABLE comme pris en charge. Un pilote conforme au niveau de la transition FIPS retourne toujours toutes ces options telles que prises en charge.
SQL_UNION 2.0 Masque de bits SQLUINTEGER énumérant la prise en charge de la clause UNION :
SQL_U_UNION = La source de données prend en charge la clause UNION .
SQL_U_UNION_ALL = La source de données prend en charge le mot clé ALL dans la clause UNION . (SQLGetInfo retourne à la fois SQL_U_UNION et SQL_U_UNION_ALL dans ce cas.)

Un pilote sql-92 conforme au niveau d’entrée retourne toujours ces deux options comme prises en charge.
SQL_USER_NAME 1.0 Chaîne de caractères avec le nom utilisé dans une base de données particulière, qui peut être différent du nom de connexion.
SQL_XOPEN_CLI_YEAR 3.0 Chaîne de caractères qui indique l’année de publication de la spécification Open Group avec laquelle la version du Gestionnaire de pilotes ODBC est entièrement conforme.

Exemple

SQLGetInfo retourne des listes d’options prises en charge sous la forme d’un masque de bits SQLUINTEGER dans *InfoValuePtr. Le masque de bits de chaque option est utilisé avec l’indicateur pour déterminer si l’option est prise en charge.

Par exemple, une application peut utiliser le code suivant pour déterminer si la fonction scalaire SUBSTRING est prise en charge par le pilote associé à la connexion.

Pour obtenir un autre exemple d’utilisation de SQLGetInfo, consultez FONCTION SQLTables.

SQLUINTEGER fFuncs;  
  
SQLGetInfo(hdbc,  
           SQL_STRING_FUNCTIONS,  
           (SQLPOINTER)&fFuncs,  
           sizeof(fFuncs),  
           NULL);  
  
// SUBSTRING supported  
if (fFuncs & SQL_FN_STR_SUBSTRING)  
   ;   // do something  
  
// SUBSTRING not supported  
else  
   ;   // do something else  

Retour du paramètre d’un attribut de connexion
Fonction SQLGetConnectAttr

Déterminer si un pilote prend en charge une fonction
Fonction SQLGetFunctions

Retour du paramètre d’un attribut d’instruction
Fonction SQLGetStmtAttr

Retour d’informations sur les types de données d’une source de données
Fonction SQLGetTypeInfo

Voir aussi

Informations de référence sur l’API ODBC
Fichiers d’en-tête ODBC