Partager via


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.

Le pilote ODBC SQL Server Native Client utilise l'instruction SET FMTONLY pour réduire la charge sur le serveur en cas d'appel à SQLDescribeCol pour des instructions préparées mais non exécutées. 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 ».

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).