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


SQLDescribeCol

Для выполняемых инструкций драйверу ODBC SQL Server Native Client не нужно запрашивать сервер для описания столбцов в результирующем наборе. В этом случае 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
DATETIME SQL_TYPE_TIMESTAMP 23 3
smalldatetime SQL_TYPE_TIMESTAMP 16 0
Дата 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. Дополнительные сведения см. в статье Крупные типы User-Defined CLR (ODBC).

См. также:

SQLDescribeCol, функция
ODBC API Implementation Details