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