Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser SQLColAttribute pour récupérer un attribut d’une colonne de jeu de résultats pour les instructions ODBC préparées ou exécutées. L’appel d’instructions SQLColAttribute préparées entraîne un aller-retour vers SQL Server. Le pilote ODBC SQL Server Native Client reçoit les données de colonne du jeu de résultats dans le cadre de l’exécution de l’instruction. Par conséquent, l’appel SQLColAttribute après l’achèvement de SQLExecute ou SQLExecDirect n’implique pas d’aller-retour de serveur.
Remarque
Les attributs d’identificateur de colonne ODBC ne sont pas disponibles sur tous les jeux de résultats SQL Server.
| Identificateur de champ | Descriptif |
|---|---|
| SQL_COLUMN_TABLE_NAME | Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. |
| SQL_DESC_BASE_COLUMN_NAME | Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. |
| SQL_DESC_BASE_TABLE_NAME | Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. |
| SQL_DESC_CATALOG_NAME | Nom de la base de données. Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. |
| SQL_DESC_LABEL | Disponible sur tous les jeux de résultats. La valeur est identique à la valeur du champ SQL_DESC_NAME. Le champ est de longueur nulle uniquement si une colonne est le résultat d’une expression et que l’expression ne contient pas d’affectation d’étiquette. |
| SQL_DESC_NAME | Disponible sur tous les jeux de résultats. La valeur est identique à la valeur du champ SQL_DESC_LABEL. Le champ est de longueur nulle uniquement si une colonne est le résultat d’une expression et que l’expression ne contient pas d’affectation d’étiquette. |
| SQL_DESC_SCHEMA_NAME | Nom du propriétaire. Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. Disponible uniquement si le nom du propriétaire est spécifié pour la colonne dans l’instruction SELECT. |
| SQL_DESC_TABLE_NAME | Disponible sur les jeux de résultats récupérés à partir d’instructions qui génèrent des curseurs de serveur ou sur des instructions SELECT exécutées contenant une clause FOR BROWSE. |
| SQL_DESC_UNNAMED | SQL_NAMED pour toutes les colonnes d’un jeu de résultats, sauf si une colonne est le résultat d’une expression qui ne contient pas d’attribution d’étiquette dans le cadre de l’expression. Lorsque SQL_DESC_UNNAMED retourne SQL_UNNAMED, tous les attributs d’identificateur de colonne ODBC contiennent des chaînes de longueur nulle pour la colonne. |
Le pilote ODBC SQL Server Native Client utilise l’instruction SET FMTONLY pour réduire la surcharge du serveur quand elle SQLColAttribute est appelée pour des instructions préparées mais non exécutées.
Pour les types de valeurs volumineuses, SQLColAttribute retourne les valeurs suivantes :
| Identificateur de champ | Description de la modification |
|---|---|
| SQL_DESC_DISPLAY_SIZE | Il s’agit du nombre maximal de caractères requis pour afficher les données de la colonne. Pour les colonnes de type valeur élevée, la valeur retournée est SQL_SS_LENGTH_UNLIMITED. |
| SQL_DESC_LENGTH | Retourne la longueur réelle de la colonne dans le jeu de résultats. Pour les colonnes de type valeur élevée, la valeur retournée est SQL_SS_LENGTH_UNLIMITED. |
| SQL_DESC_OCTET_LENGTH | Retourne la longueur maximale d’une colonne de type valeur importante. SQL_SS_LENGTH_UNLIMITED est utilisé pour indiquer une taille illimitée. |
| SQL_DESC_PRECISION | Retourne la valeur SQL_SS_LENGTH_UNLIMITED pour les colonnes de type valeur volumineuse. |
| SQL_DESC_TYPE | Retourne SQL_VARCHAR, SQL_WVARCHAR et SQL_VARBINARY pour les types de valeurs volumineuses. |
| SQL_DESC_TYPE_NAME | Renvoie « varchar », « varbinary », « nvarchar » pour les types de valeurs volumineux. |
Pour toutes les versions, les attributs de colonne sont signalés uniquement pour le premier jeu de résultats lorsque plusieurs jeux de résultats sont générés par un lot préparé d’instructions SQL.
Les attributs de colonne suivants sont des extensions exposées par le pilote ODBC SQL Server Native Client. Le pilote ODBC SQL Server Native Client retourne toutes les valeurs dans le paramètre NumericAttrPtr . Les valeurs sont retournées en tant que SDWORD (signé long) sauf SQL_CA_SS_COMPUTE_BYLIST, qui est un pointeur vers un tableau WORD.
| Identificateur de champ | Valeur retournée |
|---|---|
| SQL_CA_SS_COLUMN_HIDDEN* | TRUE si la colonne référencée fait partie d’une clé primaire masquée créée pour prendre en charge une instruction Transact-SQL SELECT contenant FOR BROWSE. |
| SQL_CA_SS_COLUMN_ID | Position ordinale d’une colonne de résultat de clause COMPUTE dans l’instruction SELECT Transact-SQL actuelle. |
| SQL_CA_SS_COLUMN_KEY* | TRUE si la colonne référencée fait partie d’une clé primaire pour la ligne et que l’instruction Transact-SQL SELECT contient FOR BROWSE. |
| SQL_CA_SS_COLUMN_OP | Entier spécifiant l’opérateur d’agrégation responsable de la valeur dans une colonne de clause COMPUTE. Les définitions des valeurs entières sont dans sqlncli.h. |
| SQL_CA_SS_COLUMN_ORDER | Position ordinale de la colonne dans une clause ORDER BY d’une instruction ODBC ou Transact-SQL SELECT. |
| SQL_CA_SS_COLUMN_SIZE | Longueur maximale, en octets, requise pour lier une valeur de données récupérée de la colonne à une variable SQL_C_BINARY. |
| SQL_CA_SS_COLUMN_SSTYPE | Type de données natif des données stockées dans la colonne SQL Server. Les définitions des valeurs de type sont dans sqlncli.h. |
| SQL_CA_SS_COLUMN_UTYPE | Type de données de base du type de données défini par l’utilisateur de la colonne SQL Server. Les définitions des valeurs de type sont dans sqlncli.h. |
| SQL_CA_SS_COLUMN_VARYLEN | TRUE si les données de la colonne peuvent varier en longueur, FALSE sinon. |
| SQL_CA_SS_COMPUTE_BYLIST | Pointeur vers un tableau de WORD (unsigned short) spécifiant les colonnes utilisées dans l’expression BY d’une clause COMPUTE. Si la clause COMPUTE ne spécifie pas d’expression BY, un pointeur NULL est retourné. Le premier élément du tableau contient le nombre de colonnes de liste BY. Les éléments supplémentaires sont les ordinals de colonne. |
| SQL_CA_SS_COMPUTE_ID | computeid d’une ligne qui est le résultat d’une clause COMPUTE dans l’instruction Transact-SQL SELECT actuelle. |
| SQL_CA_SS_NUM_COMPUTES | Nombre de clauses COMPUTE spécifiées dans l’instruction SELECT Transact-SQL actuelle. |
| SQL_CA_SS_NUM_ORDERS | Nombre de colonnes spécifiées dans une clause ORDER BY d’une instruction ODBC ou Transact-SQL SELECT. |
* Disponible si l’attribut d’instruction SQL_SOPT_SS_HIDDEN_COLUMNS est défini sur SQL_HC_ON.
SQL Server 2005 a introduit des champs de descripteur spécifiques au pilote pour fournir des informations supplémentaires pour indiquer le nom de la collection de schémas XML, le nom du schéma et le nom du catalogue, respectivement. Ces propriétés ne nécessitent pas de guillemets ou un caractère d’échappement s’ils contiennent des caractères non alphanumériques. Le tableau suivant répertorie ces nouveaux champs de descripteur :
| Nom de colonne | Catégorie | Descriptif |
|---|---|---|
| SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME | CharacterAttributePtr | Nom du catalogue dans lequel un nom de collection de schémas XML est défini. Si le nom du catalogue est introuvable, cette variable contient une chaîne vide. Ces informations sont retournées à partir du champ d’enregistrement SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME de l’IRD, qui est un champ en lecture-écriture. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E | CharacterAttributePtr | Nom du schéma dans lequel un nom de collection de schémas XML est défini. Si le nom du schéma est introuvable, cette variable contient une chaîne vide. Ces informations sont retournées à partir du champ d’enregistrement SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME de l’IRD, qui est un champ en lecture-écriture. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_NAME | CharacterAttributePtr | Nom d’une collection de schémas XML. Si le nom est introuvable, cette variable contient une chaîne vide. Ces informations sont retournées à partir du champ d’enregistrement SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME de l’IRD, qui est un champ en lecture-écriture. |
En outre, SQL Server 2005 a introduit de nouveaux champs de descripteur spécifiques au pilote pour fournir des informations supplémentaires pour une colonne de type défini par l’utilisateur (UDT) d’un jeu de résultats ou d’un paramètre UDT d’une procédure stockée ou d’une requête paramétrable. Ces propriétés ne nécessitent pas de guillemets ou un caractère d’échappement s’ils contiennent des caractères non alphanumériques. Le tableau suivant répertorie ces nouveaux champs de descripteur :
| Nom de la colonne | Catégorie | Descriptif |
|---|---|---|
| SQL_CA_SS_UDT_CATALOG_NAME | CharacterAttributePtr | Nom du catalogue contenant l’UDT. |
| SQL_CA_SS_UDT_SCHEMA_NAME | CharacterAttributePtr | Nom du schéma contenant l’UDT. |
| SQL_CA_SS_UDT_TYPE_NAME | CharacterAttributePtr | Nom de l’UDT. |
| SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME | CharacterAttributePtr | Nom qualifié de l’assembly de l’UDT. |
L’identificateur de champ de descripteur existant SQL_DESC_TYPE_NAME est utilisé pour indiquer le nom de l’UDT. Le champ SQL_DESC_TYPE d’une colonne de type UDT est SQL_SS_UDT.
Prise en charge de SQLColAttribute pour les fonctionnalités de date et d’heure améliorées
Pour connaître les valeurs retournées pour les types date/heure, consultez la section « Informations retournées dans les champs IRD » dans Les métadonnées de paramètre et de résultat.
Pour plus d’informations, consultez Améliorations de date et d’heure (ODBC).
Prise en charge de SQLColAttribute pour les UDT CLR volumineux
SQLColAttribute prend en charge les types clR définis par l’utilisateur (UDT). Pour plus d’informations, consultez Les types CLR définis par l’utilisateur (ODBC) volumineux.
Prise en charge de SQLColAttribute pour les colonnes éparses
SQLColAttribute interroge le nouveau champ de descripteur de ligne d’implémentation (IRD), SQL_CA_SS_IS_COLUMN_SET, pour déterminer si une colonne est une column_set colonne.
Pour plus d’informations, consultez La prise en charge des colonnes éparses (ODBC).
Voir aussi
SQLColAttribute, fonction
Détails de l’implémentation d’API ODBC
SQLSetStmtAttr