Partage 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ée à 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 sont l’une des suivantes : une chaîne de caractères terminée par null, une valeur SQLUSMALLINT, une masque de bits SQLUINTEGER, un indicateur SQLUINTEGER, une valeur binaire SQLUINTEGER ou une 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 d’arrêt null pour les données de caractères) disponibles pour retourner dans la mémoire tampon pointée par InfoValuePtr.

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 ; sinon, SQLSTATE HY090 (chaîne ou longueur de mémoire tampon non valide) est retourné.

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

Pour les données de caractères, si le nombre d’octets disponibles à retourner est supérieur ou égal à BufferLength, les informations de *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, en fonction de 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 Erreur 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 suffisamment grande pour renvoyer toutes les informations demandées. Par conséquent, les informations ont été tronquées. La longueur des informations demandées dans son formulaire nontruncé 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 du lien de communication Le lien de communication entre le pilote et la source de données à laquelle le pilote a été connecté a échoué avant l’achèvement du traitement de la fonction.
HY000 Erreur générale Une erreur s’est produite pour laquelle il n’y avait aucun SQLSTATE spécifique et pour lequel 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 de 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 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 en continu.
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 accessibles, éventuellement 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 était SQL_DRIVER_HDESC et la valeur pointée par InfoValuePtr n’était pas un handle de descripteur valide.
HY090 Longueur de la chaîne ou de la 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 la 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é La période d’expiration de la connexion a expiré avant que la source de données ne réponde à la demande. La période d’expiration de 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 aucune conversion Unicode ni thunking (voir l’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 au pilote, Types de descripteur, 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

  • Valeur SQLUSMALLINT

  • Masque de bits SQLUINTEGER

  • Valeur SQLUINTEGER

  • Valeur binaire SQLUINTEGER

Le format de chacun des types d’informations suivants est noté dans la description du type. L’application doit caster 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 pour 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 qu’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 pour 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 par catégorie 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é des 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

Remarque

Lors de l’implémentation de SQLGetInfo, un pilote peut améliorer les performances en réduisant le nombre de fois où ces informations sont envoyées ou demandées à partir 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 du 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 ces 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 pris en charge à partir du type d’informations SQL_SQL_CONFORMANCE et utiliser les autres types d’informations pour déterminer les variations du 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 les longueurs maximales 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 l’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éconseillées dans ODBC 3.x. Les pilotes ODBC 3.x doivent continuer à prendre en charge ces types d’informations pour la compatibilité descendante avec les applications ODBC 2.x. (Pour plus d’informations sur ces types, consultez Prise en charge de SQLGetInfo dans l’annexe G : Recommandations relatives à 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 elle a été introduite 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 a garanti des privilèges SELECT à toutes les tables retournées par SQLTables ; « N » s’il peut y avoir des tables retournées que 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’existe aucune limite spécifiée ou si la limite est inconnue, cette valeur est définie sur zéro.
SQL_AGGREGATE_FUNCTIONS 3.0 Prise en charge de l’énumération du masque de bits SQLUINTEGER pour les 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 comme pris en charge.
SQL_ALTER_DOMAIN 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction ALTER DOMAIN , telle que définie dans SQL-92, prise en charge par la source de données. Un pilote de niveau complet SQL-92 retourne toujours tous les masques de bits. La 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 affiché 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 = <alter domain><set domain default clause> is supported (Full level)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <clause> de définition de nom de contrainte est prise en charge pour nommer la contrainte 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 du domaine de suppression de domaine><est prise en charge (niveau complet)

Les bits suivants spécifient les attributs de> contrainte pris en charge <si <la contrainte> de domaine est prise en charge (le bit SQL_AD_ADD_DOMAIN_CONSTRAINT 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 affiché 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 prise en charge, avec la fonctionnalité permettant de spécifier le classement de colonne (niveau complet) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <add column> clause is supported, with facility to specify column defaults (FIPS Transitional level) (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <ajouter une colonne> est prise en charge (niveau transitionnel FIPS) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <ajouter une clause de colonne> est prise en charge, avec la fonctionnalité permettant de spécifier des contraintes de colonne (niveau de transition FIPS) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <ajouter une clause de contrainte> de table est prise en charge (niveau de transition FIPS) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <définition> de nom de contrainte est prise en charge pour nommer les contraintes de colonne et de table (niveau intermédiaire) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <drop column> CASCADE est pris en charge (niveau transitionnel FIPS) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <alter column><drop column default clause> is supported (Intermediate level) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <drop column> RESTRICT est pris en charge (niveau transitionnel 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 transitionnel FIPS) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <alter column><set column default clause> is supported (Intermediate level) (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 bit SQL_AT_ADD_CONSTRAINT 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 de 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 connexion est prise en charge. Tous les handles d’instruction associés à un handle de connexion donné sont en mode asynchrone ou sont en mode synchrone. Un handle d’instruction sur une connexion ne peut pas être en mode asynchrone, tandis qu’un autre handle d’instruction sur la même connexion est en mode synchrone, et vice versa.
SQL_AM_STATEMENT = Exécution asynchrone au niveau de l’instruction est prise en charge. Certains handles d’instructions 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 = Notification d’exécution asynchrone est prise en charge par le pilote.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = 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 en ce qui concerne la disponibilité du nombre de lignes. Les masques de bits suivants sont utilisés avec le type d’informations :

SQL_BRC_ROLLED_UP = Nombre de lignes pour les instructions INSERT, DELETE ou UPDATE consécutives sont regroupées en une seule. Si ce bit n’est pas défini, les nombres de lignes sont disponibles pour chaque instruction.
SQL_BRC_PROCEDURES = Nombre de lignes, le cas échéant, sont disponibles lorsqu’un lot est exécuté dans une procédure stockée. Si les nombres de lignes sont disponibles, ils peuvent être roulés ou individuellement disponibles, en fonction du bit SQL_BRC_ROLLED_UP.
SQL_BRC_EXPLICIT = Nombre de lignes, le cas échéant, sont disponibles lorsqu’un lot est exécuté directement en appelant SQLExecute ou SQLExecDirect. Si les nombres de lignes sont disponibles, ils peuvent être roulés ou individuellement disponibles, en fonction du bit SQL_BRC_ROLLED_UP.
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 quel niveau est 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 par le biais des signets persistants. Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer les signets d’options persistants :

SQL_BP_CLOSE = Les signets sont valides après qu’une application appelle 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 la validation ou la restauration d’une transaction par une application.
SQL_BP_UPDATE = Le signet d’une ligne est valide après la mise à jour d’une colonne de cette ligne, y compris les colonnes clés.
SQL_BP_OTHER_HSTMT = 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 oracle Server 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.

Ce type d’infoType a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_QUALIFIER_LOCATION.
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 suit ou précède celui-ci.

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 conforme au niveau complet SQL-92 retourne toujours « ».

Cet InfoType a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_QUALIFIER_NAME_SEPARATOR.
SQL_CATALOG_TERM 1.0 Chaîne de caractères portant le nom du fournisseur de 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 conforme au niveau complet SQL-92 retourne toujours « catalog ».

Cet InfoType a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_QUALIFIER_TERM.
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 language de manipulation de données : SELECT, INSERT, UPDATE, DELETE, et si pris 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ège : 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 du type 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). S’il s’agit d’une chaîne 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 dans 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 des colonnes de type de données caractères valeur NULL avec des colonnes de type de données caractère non NULL :
SQL_CB_NULL = Résultat a la valeur NULL.
SQL_CB_NON_NULL = Le résultat est la concaténation de colonnes ou de colonnes non NULL.

Un pilote conforme au niveau d’entrée SQL-92 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 convert scalaire pour les données du type nommé dans 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 vers le type de données SQL_BIGINT, une application appelle SQLGetInfo avec l’InfoType de SQL_CONVERT_INTEGER. L’application effectue une opération AND avec le masque de bits retourné et SQL_CVT_BIGINT. Si la valeur résultante n’est pas nulle, 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 défini par l’utilisateur valide.

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 de l’instruction CREATE ASSERTION , telle que définie dans SQL-92, prise 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 des attributs de contrainte est explicitement 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 de niveau complet SQL-92 retourne toujours toutes ces options comme pris en charge. Une valeur de retour de « 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 , telle que définie dans SQL-92, prise 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 de niveau complet SQL-92 retourne toujours toutes ces options comme pris en charge. Une valeur de retour de « 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 de l’instruction CREATE COLLATION , telle que définie dans SQL-92, prise 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 conforme au niveau complet SQL-92 retourne toujours cette option comme prise en charge. Une valeur de retour de « 0 » signifie que l’instruction CREATE COLLATION n’est pas prise en charge.
SQL_CREATE_DOMAIN 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction CREATE DOMAIN , telle que définie dans SQL-92, prise 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 nommer les contraintes de domaine (niveau intermédiaire).

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

Les bits suivants spécifient les attributs de contrainte pris en charge si la spécification des contraintes de domaine est prise en charge (SQL_CDO_DEFAULT est définie) :
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)

Une valeur de retour de « 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 de l’instruction CREATE SCHEMA , telle que définie dans SQL-92, prise 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 de niveau intermédiaire SQL-92 retourne toujours les options de SQL_CS_CREATE_SCHEMA et de SQL_CS_AUTHORIZATION comme pris en charge. Ces instructions doivent également être prises en charge au niveau d’entrée SQL-92, mais pas nécessairement en tant qu’instructions SQL. Un pilote de niveau complet SQL-92 retourne toujours toutes ces options comme pris en charge.
SQL_CREATE_TABLE 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction CREATE TABLE , telle que définie dans SQL-92, 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 affiché 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_CT_CREATE_TABLE = L’instruction CREATE TABLE est prise en charge. (Niveau d’entrée)
SQL_CT_TABLE_CONSTRAINT = Spécification des 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 colonne et de table de nommage (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 = Les tables temporaires globales peuvent être créées. (Niveau complet)
SQL_CT_LOCAL_TEMPORARY = Les 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 = Spécification des contraintes de colonne est prise en charge (niveau transitionnel FIPS)
SQL_CT_COLUMN_DEFAULT = Spécifier les valeurs par défaut des colonnes est prise en charge (niveau transitionnel FIPS)
SQL_CT_COLUMN_COLLATION = Spécifier le classement de colonne est pris en charge (niveau complet)

Les bits suivants spécifient les attributs de contrainte pris en charge si la spécification des 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 de l’instruction CREATE TRANSLATION , telle que définie dans SQL-92, prise 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 conforme au niveau complet SQL-92 retourne toujours ces options comme pris en charge. Une valeur de retour de « 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 de l’instruction CREATE VIEW , telle que définie dans SQL-92, prise 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

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

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

Un pilote de niveau complet SQL-92 retourne toujours toutes ces options comme pris 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 des instructions préparées. Pour utiliser à nouveau le curseur, l’application doit repreparer 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 votre ou vos curseurs lorsque vous validez une transaction.
SQL_CB_PRESERVE = Conserver les curseurs à 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 réécrire.
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 des instructions préparées. Pour utiliser à nouveau le curseur, l’application doit repreparer 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 à 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 réécrire.
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 apportées par un autre curseur dans la même transaction.
SQL_UNSPECIFIED = Il n’est pas spécifié si les curseurs sur le handle d’instruction rendent visibles les modifications 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 visibles aucun, certains ou toutes ces modifications.
SQL_SENSITIVE = Les curseurs sont sensibles aux modifications apportées par d’autres curseurs au sein de 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 conforme au niveau complet SQL-92 retourne toujours l’option SQL_INSENSITIVE prise en charge.
SQL_DATA_SOURCE_NAME 1.0 Chaîne de caractères portant le nom de la source de données utilisée lors de la connexion. Si l’application appelée SQLConnect, il s’agit de la valeur de l’argument szDSN . Si l’application appelée SQLDriverConnect ou SQLBrowseConnect est la valeur du mot clé DSN dans le chaîne de connexion passé au pilote. Si le chaîne de connexion ne contenait pas le mot clé DSN (par exemple, lorsqu’il 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 sur le mode LECTURE SEULE, « N » si c’est le cas dans le cas contraire.

Cette caractéristique se rapporte uniquement à la source de données elle-même ; il ne s’agit pas d’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 retourner SQL_DATA_SOURCE_READ_ONLY.
SQL_DATABASE_NAME 1.0 Chaîne de caractères portant 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 datetime 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 sont distincts des clauses d’échappement littéral datetime définies par ODBC. Pour plus d’informations sur les clauses d’échappement littéral odbc datetime, consultez Date, Heure et Timestamp Littéraux.

Un pilote de niveau transitionnel 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 portant 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 mise en production. Le pilote doit restituer la version du produit SGBD dans ce formulaire, mais peut également ajouter la version spécifique au produit 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 :
La transaction de lecture incorrecte 1 modifie une ligne. La transaction 2 lit la ligne modifiée avant que la transaction 1 valide la modification. Si la transaction 1 restaure la modification, la transaction 2 aura lu une ligne considérée comme n’ayant jamais existé.
La transaction en lecture 1 non reproductible 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 différentes valeurs de ligne ou découvre que la ligne a été supprimée.
La transaction fantôme 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écute 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’une des masques de bits suivantes :
SQL_TXN_READ_UNCOMMITTED = Lectures sales, lectures non reproductibles et fantômes sont possibles.
SQL_TXN_READ_COMMITTED = Les lectures sales ne sont pas possibles. Les lectures et les fantômes non reproductibles sont possibles.
SQL_TXN_REPEATABLE_READ = Lectures sales et 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 », sinon.

Un pilote de niveau complet SQL-92 retourne généralement « Y », car il prend en charge l’instruction DESCRIBE INPUT . Comme 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 PRINCIPALE d’ODBC, comme indiqué par la constante SQL_SPEC_MAJOR.
Le deuxième jeu 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 jeu 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 compte le pilote.

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 n’est pas honoré de la valeur de retour du pilote.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Valeur SQLULEN, handle d’environnement du pilote ou 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 Valeur SQLULEN, 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 descripteur d’entrée transmis dans *InfoValuePtr doit avoir été alloué explicitement ou implicitement sur connectionHandle.

L’application doit effectuer une copie du descripteur du Gestionnaire de pilotes avant d’appeler SQLGetInfo avec ce type d’informations pour vous 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 retourné au Gestionnaire de pilotes lorsqu’il a chargé la DLL du 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, handle d’instruction du pilote déterminé par le handle d’instruction Driver Manager, qui doit être transmis à l’entrée dans *InfoValuePtr à partir de l’application. Dans ce cas, InfoValuePtr est à la fois une entrée et un argument de sortie. Le handle d’instruction d’entrée transmis 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 pour vous 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 portant 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éfinissez les numéros de version principale et mineure. 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 à retourner. 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, voir 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 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 mise en production.
SQL_DROP_ASSERTION 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP ASSERTION , telle que définie dans SQL-92, prise 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 conforme au 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 , telle que définie dans SQL-92, prise 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 conforme au 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 , telle que définie dans SQL-92, prise 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 conforme au 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 , telle que définie dans SQL-92, prise 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 comme pris en charge.
SQL_DROP_SCHEMA 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP SCHEMA , telle que définie dans SQL-92, prise 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 comme pris en charge.
SQL_DROP_TABLE 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP TABLE , telle que définie dans SQL-92, prise 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 de niveau transitionnel FIPS retourne toujours toutes ces options comme pris en charge.
SQL_DROP_TRANSLATION 3.0 Masque de bits SQLUINTEGER énumérant les clauses de l’instruction DROP TRANSLATION , telle que définie dans SQL-92, prise 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 conforme au 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 , telle que définie dans SQL-92, prise 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 de niveau transitionnel FIPS retourne toujours toutes ces options comme pris 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 = 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 à extraire est indépendant de la position actuelle du curseur.)
SQL_CA1_RELATIVE = 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 récupéré dépend de la position actuelle du curseur. Notez que cela est séparé de SQL_FETCH_NEXT, car dans un curseur vers l’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 Opération de SQL_POSITION est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_UPDATE = Un argument Opération de SQL_UPDATE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_DELETE = Un argument Opération de SQL_DELETE est pris en charge dans un appel à SQLSetPos lorsque le curseur est un curseur dynamique.
SQL_CA1_POS_REFRESH = Un argument Opération 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 en tant que 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 en tant que prise en charge.)
SQL_CA1_SELECT_FOR_UPDATE = Une instruction SELECT FOR UPDATE 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 en tant que prise en charge.)
SQL_CA1_BULK_ADD = Un argument Opération 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 Opération 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 Opération 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 Opération de SQL_FETCH_BY_BOOKMARK est pris en charge dans un appel à SQLBulkOperations lorsque le curseur est un curseur dynamique.

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 elle prend en charge les curseurs à défilement via l’instruction SQL FETCH incorporée. Étant donné que cela ne détermine pas directement la prise en charge de SQL sous-jacente, toutefois, les curseurs défilables peuvent ne pas être pris en charge, même pour un pilote de 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 quels attributs sont 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 vous assurer que la ligne peut être mise à jour est prise 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 = Curseur dynamique qui utilise le contrôle d’accès concurrentiel optimiste comparant les versions de lignes 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 qui compare les 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 par un curseur dynamique ; le curseur peut faire défiler vers ces lignes. (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 laissez pas de « trou » dans le jeu de résultats ; après le défilement dynamique du curseur à partir d’une ligne supprimée, il ne peut pas revenir à cette ligne.
SQL_CA2_SENSITIVITY_UPDATES = Mises à jour des lignes sont visibles par un curseur dynamique ; si le curseur dynamique fait défiler et retourne à 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, et 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’affectent qu’une seule ligne lorsque le curseur est un curseur dynamique ; c’est la responsabilité de l’application de garantir cela. (Si une instruction affecte plusieurs lignes, SQLExecute ou SQLExecDirect retourne SQLSTATE 01001 [Conflit d’opérations 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’affectent 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’existe aucune clé unique. (Si une instruction affecte plusieurs lignes, SQLExecute ou SQLExecDirect retourne SQLSTATE 01001 [Conflit d’opérations 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’affectent 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 retourne SQLSTATE 01001 (conflit d’opérations 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 à niveau unique traite directement les fichiers d’une source de données :
SQL_FILE_NOT_SUPPORTED = Le pilote n’est pas un pilote à niveau unique. Par exemple, un pilote ORACLE est un pilote à deux niveaux.
SQL_FILE_TABLE = Un pilote à niveau unique traite les fichiers d’une source de données en tant que tables. Par exemple, un pilote Xbase traite chaque fichier Xbase en tant que table.
SQL_FILE_CATALOG = Un pilote à niveau unique traite les fichiers d’une source de données comme un catalogue. Par exemple, un pilote Microsoft Access traite chaque fichier Microsoft Access en tant que base de données complète.

Une application peut l'utiliser pour déterminer la façon dont les utilisateurs sélectionnent des 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 commun ; 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 quels attributs sont 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 des descriptions de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur avant uniquement » pour « 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 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 avant uniquement » pour « curseur dynamique » dans les descriptions).
SQL_GETDATA_EXTENSIONS 2.0 Énumération d’extensions de masque de bits SQLUINTEGER dans SQLGetData.

Les masques de bits suivants sont utilisés avec l’indicateur pour déterminer quelles extensions courantes le pilote prend en charge pour SQLGetData :
SQL_GD_ANY_COLUMN = SQLGetData peut être appelé pour n’importe quelle colonne non liée, y compris celles avant la dernière colonne liée. Notez que les colonnes doivent être appelées dans l’ordre de nombre croissant de colonnes, sauf si SQL_GD_ANY_ORDER est également retournée.
SQL_GD_ANY_ORDER = SQLGetData peut être appelé pour les colonnes non liées 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ée.
SQL_GD_BLOCK = SQLGetData peut être appelé pour une colonne non liée 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 si elle 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, voir Récupération des paramètres de sortie à l'aide de SQLGetData.

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

Si un pilote prend en charge les signets (longueur fixe ou longueur variable), il doit prendre en charge l’appel de SQLGetData sur la colonne 0. Cette prise en charge est requise, quel que soit le retour du pilote pour un appel à SQLGetInfo avec le type 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. Elle 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. Elle 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 la liste de sélection ne sont pas associées. La signification des colonnes non groupées et non regroupé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 conforme au niveau d’entrée SQL-92 retourne toujours l’option SQL_GB_GROUP_BY_EQUALS_SELECT prise en charge. Un pilote conforme au niveau complet SQL-92 retourne toujours l’option SQL_GB_COLLATE en tant que 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 dans un cas mixte dans le catalogue système.
SQL_IC_MIXED = Les identificateurs dans SQL ne respectent pas la casse et sont stockés dans un cas mixte dans le catalogue système.

Étant donné que les identificateurs dans SQL-92 ne respectent jamais la casse, un pilote conforme strictement à SQL-92 (n’importe quel niveau) ne retourne jamais l’option SQL_IC_SENSITIVE telle qu’elle est 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és) dans les instructions SQL. (Les identificateurs passés en tant qu’arguments aux fonctions ODBC n’ont pas besoin d’ê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 citer des arguments de fonction catalogue lorsque l’attribut de connexion SQL_ATTR_METADATA_ID est défini sur SQL_TRUE.

Étant donné que le caractère de guillemet d’identificateur dans SQL-92 est le guillemet double ("), un pilote conforme strictement à SQL-92 retourne toujours le caractère guillemets doubles.
SQL_INDEX_KEYWORDS 3.0 Masque de bits SQLUINTEGER qui énumère les mots clés dans l’instruction CREATE INDEX prise 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 déterminer 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 les INFORMATION_SCHEMA prises en charge par le pilote. Les vues dans et le contenu de INFORMATION_SCHEMA sont définies dans SQL-92.

Le niveau de conformité SQL-92 ou FIPS auquel cette fonctionnalité doit être prise en charge est affiché entre parenthèses en regard 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 appartenant à un utilisateur donné. (Niveau complet)
SQL_ISV_CHARACTER_SETS = Identifie les jeux de caractères du catalogue accessibles par 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 pour le catalogue accessible par 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 disponibles ou accordées par un utilisateur donné. (Niveau de transition FIPS)
SQL_ISV_COLUMNS = Identifie les colonnes de tables persistantes accessibles par un utilisateur donné. (Niveau de transition FIPS)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = Similaire à la vue CONSTRAINT_TABLE_USAGE, 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 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 accessible 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 appartenant à 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é, les options et les dialectes SQL pris en charge par l’implémentation SQL. (Niveau intermédiaire)
SQL_ISV_TABLE_CONSTRAINTS = Identifie les contraintes de table appartenant à un utilisateur donné. (Niveau intermédiaire)
SQL_ISV_TABLE_PRIVILEGES = Identifie les privilèges sur les tables persistantes disponibles ou accordées par un utilisateur donné. (Niveau de transition FIPS)
SQL_ISV_TABLES = Identifie les tables persistantes définies dans un catalogue accessible par un utilisateur donné. (Niveau de transition FIPS)
SQL_ISV_TRANSLATIONS = Identifie les traductions de caractères pour le catalogue accessible par un utilisateur donné. (Niveau complet)
SQL_ISV_USAGE_PRIVILEGES = Identifie les privilèges USAGE sur les objets catalogue disponibles ou détenus par un utilisateur donné. (Niveau de transition FIPS)
SQL_ISV_VIEW_COLUMN_USAGE = Identifie les colonnes sur lesquelles les vues du catalogue appartenant à un utilisateur donné dépendent. (Niveau intermédiaire)
SQL_ISV_VIEW_TABLE_USAGE = Identifie les tables sur lesquelles les vues du catalogue appartenant à un utilisateur donné dépendent. (Niveau intermédiaire)
SQL_ISV_VIEWS = Identifie les tables consultées définies dans ce catalogue qui sont accessibles par un utilisateur donné. (Niveau de transition 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 comme pris en charge.
SQL_INTEGRITY 1.0 Chaîne de caractères : « Y » si la source de données prend en charge l’installation d’amélioration de l’intégrité ; « N » si ce n’est pas le cas.

Ce Type d’informations a été renommé pour ODBC 3.0 à partir du SQL_ODBC_SQL_OPT_IEF ODBC 2.0 InfoType .
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur d’ensemble 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 des descriptions de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur piloté par l’ensemble de clés » pour « 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 à défilement via l’instruction SQL FETCH incorporée. Étant donné que cela ne détermine pas directement la prise en charge de SQL sous-jacente, toutefois, les curseurs défilables peuvent ne pas être pris en charge, même pour un pilote de niveau intermédiaire SQL-92.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 Masque de bits SQLUINTEGER qui décrit les attributs d’un curseur d’ensemble 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 des descriptions de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur piloté par l’ensemble de clés » pour « 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 ou à des mots clés utilisés 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 dans 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 que 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’exception 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 conforme au niveau complet FIPS retourne au moins 128.

Ce Type d’infotype a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_MAX_QUALIFIER_NAME_LEN.
SQL_MAX_CHAR_LITERAL_LEN 2.0 Valeur SQLUINTEGER qui spécifie la longueur maximale (nombre de caractères, à l’exception 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 de 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 conforme au niveau d’entrée FIPS 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 conforme au niveau d’entrée FIPS 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 prises en charge par le pilote pour une connexion. Une instruction est définie comme active si elle a des résultats en attente, avec le terme « résultats » qui signifie les 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 s’il 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 du SQL_ACTIVE_STATEMENTS InfoType ODBC 2.0.
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 de 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.

Ce type d’infoType a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_ACTIVE_CONNECTIONS.
SQL_MAX_IDENTIFIER_LEN 3.0 SQLUSMALLINT qui indique la taille maximale en caractères pris 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 de 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 de l’entrée FIPS retourne au moins 2 000. Un pilote de niveau intermédiaire FIPS retourne au moins 8 000 pilotes.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 Chaîne de caractères : « Y » si la taille maximale de ligne retournée pour le type d’informations SQL_MAX_ROW_SIZE inclut la longueur de toutes les colonnes SQL_LONGVARCHAR et SQL_LONGVARBINARY dans 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 de niveau intermédiaire FIPS retourne au moins 128.

Ce Type d’informations 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, y compris l’espace blanc) 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 de 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 de 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 Plusieurs résultats.
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 à une 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 la fonction SQLBindParameter et la 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 être nullables.
SQL_NNC_NON_NULL = Les colonnes ne peuvent pas être nullables. (La source de données prend en charge le Contrainte de colonne NOT NULL dans les instructions CREATE TABLE .)

Un pilote conforme au niveau d’entrée SQL-92 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 = NULLs sont triés à la fin du jeu de résultats, quels que soient les mots clés ASC ou DESC.
SQL_NC_HIGH = NULLs sont triés à la fin supérieure du jeu de résultats, en fonction des mots clés ASC ou DESC.
SQL_NC_LOW = NULLs sont triés à la fin inférieure du jeu de résultats, en fonction des mots clés ASC ou DESC.
SQL_NC_START = NULLs sont triés 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 elle a été introduite.

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* avec laquelle le pilote est conforme.

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 principales, ainsi que les curseurs à défilement, les signets, les mises à jour et les suppressions positionnées, et ainsi de suite.
SQL_OIC_LEVEL2 : niveau incluant les fonctionnalités de niveau 1 de conformité de niveau 1, ainsi que les 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 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 = Jointures externes gauches sont prises en charge.
SQL_OJ_RIGHT = Jointures externes droites sont prises en charge.
SQL_OJ_FULL = Jointures externes complètes sont prises en charge.
SQL_OJ_NESTED = Jointures externes imbriquées sont prises en charge.
SQL_OJ_NOT_ORDERED = Les noms de colonnes dans la clause ON de la jointure externe n’ont pas besoin d’ê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 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 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, telle que définie 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 Énumération SQLUINTEGER des 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 = Les nombres de lignes individuels sont disponibles pour chaque ensemble de paramètres. Cela équivaut conceptuellement au pilote qui génère un lot d’instructions SQL, un pour chaque jeu de paramètres dans le tableau. Les informations d’erreur étendues peuvent être récupérées à l’aide du champ de descripteur SQL_PARAM_STATUS_PTR.
SQL_PARC_NO_BATCH = Il n’existe qu’un seul nombre de lignes disponible, qui est le nombre de lignes cumulés résultant de l’exécution de l’instruction pour l’ensemble du tableau de paramètres. Cela équivaut conceptuellement à 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 a été exécutée.
SQL_PARAM_ARRAY_SELECTS 3.0 Énumération SQLUINTEGER des 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 = Il existe un jeu de résultats disponible par jeu de paramètres. Cela équivaut conceptuellement au pilote qui génère un lot d’instructions SQL, un 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 cumulé 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 jeu 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 quelles options sont 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 portant le nom du fournisseur de 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 = 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 dans un 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 = Identificateurs entre guillemets dans SQL ne respectent pas la casse et sont stockés dans un cas mixte dans le catalogue système.

Un pilote conforme au niveau d’entrée SQL-92 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 mixte gère les versions de lignes ou les valeurs de 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 retourner l’indicateur SQL_ROW_UPDATED au tableau d’état de ligne lorsque SQLFetchScroll est appelé. Sinon, « N ».
SQL_SCHEMA_TERM 1.0 Chaîne de caractères portant le nom du fournisseur de source de données pour un schéma ; par exemple, « propriétaire », « ID d’autorisation » ou « Schéma ».

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

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

Ce Type d’infotype a été renommé pour ODBC 3.0 à partir du type InfoType ODBC 2.0 SQL_OWNER_TERM.
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 language de manipulation de données : SELECT, INSERT, UPDATE, DELETE, et si pris 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ège : 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, comme pris en charge.

Ce Type d’informations a été renommé pour ODBC 3.0 à partir du SQL_OWNER_USAGE ODBC 2.0 InfoType .
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 elle a été introduite.

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

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 de 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 de 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 les jeux de clés à l’intérieur du jeu de clés et dynamique en dehors du jeu de clés. (ODBC 1.0)

Pour plus d’informations sur les curseurs à défilement, consultez Curseurs pouvant faire défiler.
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 l’utilisation du trait de soulignement des métacharacteurs de modèle (_) et du 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 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.

Ce Type d’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 de serveur spécifique à la source de données réelle ; utile lorsqu’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 (autrement dit, tous les caractères à l’exception de z, A à Z, 0 à 9 et 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 au niveau d’entrée.
SQL_SC_FIPS127_2_TRANSITIONAL = Conformité au niveau transitionnel FIPS 127-2.
SQL_SC_SQL92_FULL = Conformité SQL-92 de niveau complet.
SQL_SC_ SQL92_INTERMEDIATE = Conforme SQL-92 de niveau intermédiaire.
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 les fonctions datetime 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 , telle que définie 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 de niveau transitionnel FIPS retourne toujours toutes ces options comme pris 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 , telle que définie 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 comme pris 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 affiché 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 transitionnel FIPS)
SQL_SG_USAGE_ON_CHARACTER_SET (niveau transitionnel FIPS)
SQL_SG_USAGE_ON_COLLATION (niveau de transition FIPS)
SQL_SG_USAGE_ON_TRANSLATION (niveau transitionnel 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 les fonctions numériques 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 affiché 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 transitionnel 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 affiché 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 transitionnel FIPS)
SQL_SRJO_INTERSECT_JOIN (niveau intermédiaire)
SQL_SRJO_LEFT_OUTER_JOIN (niveau transitionnel FIPS)
SQL_SRJO_NATURAL_JOIN (niveau transitionnel FIPS)
SQL_SRJO_RIGHT_OUTER_JOIN (niveau transitionnel FIPS)
SQL_SRJO_UNION_JOIN (niveau complet)

SQL_SRJO_INNER_JOIN indique la prise en charge de la syntaxe INNER JOIN , et non pour 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 , telle que définie dans SQL-92, 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 affiché 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 transitionnel 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 transitionnel 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 transitionnel FIPS)
SQL_SR_USAGE_ON_CHARACTER_SET (niveau transitionnel FIPS)
SQL_SR_USAGE_ON_COLLATION (niveau transitionnel FIPS)
SQL_SR_USAGE_ON_TRANSLATION (niveau transitionnel 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 affiché 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 transitionnel 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 norme ou les normes CLI auxquelles le pilote est conforme. Les masques de bits suivants sont utilisés pour déterminer les niveaux auxquels le pilote est conforme :
SQL_SCC_XOPEN_CLI_VERSION1 : le pilote est conforme à l’interface CLI Open Group version 1.
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 des descriptions de ces masques de bits, consultez SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (et remplacez « curseur statique » pour « 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 à défilement via l’instruction SQL FETCH incorporée. Étant donné que cela ne détermine pas directement la prise en charge de SQL sous-jacente, toutefois, les curseurs défilables peuvent ne pas être pris en charge, même pour un pilote de 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 » pour « 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 elle a été introduite.

Masque de bits SQLUINTEGER énumérant les fonctions de chaîne 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 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 string_exp1, string_exp2 et démarrer des arguments, 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 dans 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 portant le nom du fournisseur de source de données pour une table ; par exemple, « table » ou « fichier ».

Cette chaîne de caractères peut être en majuscules, en minuscules ou en majuscules.

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 quels intervalles sont 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 de 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 quels intervalles sont 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 de 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 elle a été introduite.

Masque de bits SQLUINTEGER énumérant les fonctions de date et d’heure 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 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 (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 peuvent contenir uniquement des instructions DML. Les instructions DDL (CREATE TABLE, DROP INDEX, et ainsi de suite) 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 quelles options sont prises en charge :
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

Pour obtenir des descriptions 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 la fonction SQLSetConnectAttr.

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours SQL_TXN_SERIALIZABLE en tant que prise en charge. Un pilote de niveau transitionnel FIPS retourne toujours toutes ces options comme 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 SQL_U_UNION et SQL_U_UNION_ALL dans ce cas.)

Un pilote conforme au niveau d’entrée SQL-92 retourne toujours ces deux options comme pris en charge.
SQL_USER_NAME 1.0 Chaîne de caractères portant le nom utilisé dans une base de données particulière, qui peut être différente 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 en tant que masque de bits SQLUINTEGER dans *InfoValuePtr. Le masque de bits pour 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 la 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  

Renvoi du paramètre d’un attribut de connexion
SQLGetConnectAttr, fonction

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

Renvoi du paramètre d’un attribut d’instruction
SQLGetStmtAttr, fonction

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

Voir aussi

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