SQLDescribeCol
Pour les instructions exécutées, le pilote ODBC SQL Server Native Client n'a pas besoin d'interroger le serveur pour décrire les colonnes d'un jeu de résultats. Dans ce cas, SQLDescribeCol n'entraîne pas d'aller-retour sur le serveur. À l'instar de SQLColAttributeetSQLNumResultCols, l'appel à SQLDescribeCol sur des instructions préparées mais non exécutées génère un aller-retour sur le serveur.
Lorsqu'une instruction ou un lot d'instructions Transact-SQL retourne plusieurs ensembles de lignes de résultats, il est possible qu'une colonne, référencée par un ordinal, ait pour origine une table distincte ou référence une colonne entièrement différente dans le jeu de résultats. SQLDescribeCol doit être appelé pour chaque jeu. Lorsque le jeu de résultats change, l'application doit de nouveau lier les valeurs de données avant d'extraire les résultats de ligne. Pour plus d'informations sur la gestion de plusieurs retours de jeux de résultats, consultez SQLMoreResults.
Les attributs de colonnes 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.
Pour les types de données de valeur élevée, la valeur retournée dans DataTypePtr est SQL_VARCHAR, SQL_VARBINARY ou SQL_NVARCHAR. Une valeur SQL_SS_LENGTH_UNLIMITED dans ColumnSizePtr indique que la taille est « illimitée ».
Les améliorations apportées au moteur de base de données à compter de SQL Server 2012 permettent à SQLDescribeCol d'obtenir des descriptions plus exactes des résultats attendus. Ces résultats plus exacts peuvent différer des valeurs retournées par SQLDescribeCol dans les versions précédentes de SQL Server. Pour plus d'informations, consultez Découverte des métadonnées.
Prise en charge par SQLDescribeCol des fonctionnalités de date et heure améliorées
Les valeurs retournées pour les types date/heure sont les suivantes :
DataTypePtr |
ColumnSizePtr |
DecimalDigitsPtr |
|
---|---|---|---|
datetime |
SQL_TYPE_TIMESTAMP |
23 |
3 |
smalldatetime |
SQL_TYPE_TIMESTAMP |
16 |
0 |
date |
SQL_TYPE_DATE |
10 |
0 |
time |
SQL_SS_TIME2 |
8, 10..16 |
0..7 |
datetime2 |
SQL_TYPE_TIMESTAMP |
19, 21..27 |
0..7 |
datetimeoffset |
SQL_SS_TIMESTAMPOFFSET |
26, 28..34 |
0..7 |
Pour plus d'informations, consultez Améliorations de la date et de l'heure (ODBC).
Prise en charge par SQLDescribeCol des grands types CLR définis par l'utilisateur
SQLDescribeCol prend en charge les grands types CLR définis par l'utilisateur (UDT). Pour plus d'informations, consultez Types CLR volumineux définis par l'utilisateur (ODBC).
Voir aussi
Concepts
Détails d'implémentation d'une API ODBC