Поделиться через


SQLDescribeCol

Для выполненных инструкций драйверу ODBC собственного клиента SQL Server не требуется опрашивать сервер для описания столбцов результирующего набора. В этом случае функция SQLDescribeCol не приводит к обращению к серверу. Как и функции SQLColAttribute и SQLNumResultCols, вызов функции SQLDescribeCol для подготовленных, но не выполненных инструкций приводит к обращению к серверу.

Когда инструкция Transact-SQL или пакет инструкций возвращает несколько результирующих наборов строк, то столбец, на который ссылается исходный столбец, можно создать в отдельной таблице или сослаться на абсолютно другой столбец результирующего набора. Функция SQLDescribeCol должна вызываться для каждого набора. При изменении результирующего набора приложение должно осуществить повторную привязку значений данных перед выборкой результатов строк. Дополнительные сведения об обработке запросов, возвращающих несколько результирующих наборов, см. в разделе SQLMoreResults.

Когда несколько результирующих наборов формируется подготовленным пакетом инструкций SQL, атрибуты столбцов сообщаются только для первого результирующего набора.

Для типов данных больших значений, возвращаемым в параметре DataTypePtr, значением является SQL_VARCHAR, SQL_VARBINARY или SQL_NVARCHAR. Значение SQL_SS_LENGTH_UNLIMITED в параметре ColumnSizePtr указывает, что размер «не ограничен».

Улучшения ядра СУБД, появившиеся с версии SQL Server 2012, позволяют SQLDescribeCol получать более точные описания ожидаемых результатов. Эти более точные результаты могут отличаться от значений, которые метод SQLDescribeCol возвращает в предыдущих версиях SQL Server. Дополнительные сведения см. в разделе Обнаружение метаданных.

Поддержка функцией SQLDescribeCol улучшенных возможностей работы с данными в формате даты-времени

Для типов даты-времени возвращаются следующие значения.

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

Дополнительные сведения см. в разделе Улучшенная обработка даты и времени (ODBC).

Поддержка функцией SQLDescribeCol определяемых пользователем типов больших данных CLR

Функция SQLDescribeCol поддерживает определяемые пользователем типы больших данных CLR. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).

См. также

Основные понятия

Подробности реализации API-интерфейса ODBC

Другие ресурсы

SQLDescribeCol, функция