SQLDescribeCol

Для выполняемых инструкций драйвер ODBC собственного клиента SQL Server не должен запрашивать сервер для описания столбцов в результирующем наборе. В этом случае SQLDescribeCol не вызывает циклический обход сервера. Как и SQLColAttribute, вызов 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
дата/время SQL_TYPE_TIMESTAMP двадцать три 3
smalldatetime SQL_TYPE_TIMESTAMP 16 0
дата SQL_TYPE_DATE 10 0
Время SQL_SS_TIME2 8, 10..16 0..7
дата-время2 SQL_TYPE_TIMESTAMP 19, 21..27 0..7
смещение даты и времени SQL_SS_TIMESTAMPOFFSET 26, 28..34 0..7

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

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

SQLDescribeCol поддерживает большие определяемые пользователем типы СРЕДЫ CLR (определяемые пользователем UDT). Дополнительные сведения см. в разделе "Крупные определяемые пользователем типы CLR" (ODBC).

См. также

Функция SQLDescribeCol
Подробные сведения о реализации API-интерфейсов ODBC