SQLSetDescRec
В этом разделе обсуждаются функции SQLSetDescRec, определяемые собственным клиентом SQL Server.
Функция SQLSetDescRec и параметры, возвращающие табличное значение
Функция SQLSetDescRec позволяет задать поля дескриптора для возвращающих табличное значение параметров и содержащих их столбцов. Столбцы возвращающих табличное значение параметров доступны только в том случае, когда в поле заголовка дескриптора SQL_SOPT_SS_PARAM_FOCUS задан порядковый номер записи, имеющей тип SQL_DESC_TYPE со значением SQL_SS_TABLE. Дополнительные сведения об атрибуте SQL_SOPT_SS_PARAM_FOCUS см. в разделе SQLSetStmtAttr.
В следующей таблице показано сопоставление между параметрами и полями дескриптора.
Параметр |
Связанные атрибуты для параметров, не возвращающих табличного значения, включая столбцы параметров с табличными значениями |
Связанные атрибуты для возвращающих табличное значение параметров |
---|---|---|
Type |
SQL_DESC_TYPE |
SQL_SS_TABLE |
SubType |
Не учитывается |
Для записей типа SQL_DATETIME и SQL_INTERVAL этот атрибут должен иметь значение SQL_DESC_DATETIME_INTERVAL_CODE. |
Length |
SQL_DESC_OCTET_LENGTH |
Длина имени типа параметра, возвращающего табличное значение. Значение может быть равно SQL_NTS, если имя типа представляет собой строку, завершающуюся нулевым символом, или 0, если имя типа параметра, возвращающего табличное значение, не требуется. |
Precision |
SQL_DESC_PRECISION |
SQL_DESC_ARRAY_SIZE |
Scale |
SQL_DESC_SCALE |
Не используется. Значение этого параметра должно быть равно 0. |
DataPtr |
SQL_DESC_DATA_PTR в APD |
SQL_CA_SS_TYPE_NAME Этот параметр не является обязательным для вызова хранимых процедур; если он не требуется, можно задать значение NULL. Параметр должен быть задан для инструкций SQL, не являющихся вызовами процедур. Параметр DataPtr служит также уникальным значением, по которому в приложении можно идентифицировать конкретный параметр, возвращающий табличное значение, при использовании переменной строковой привязки. |
StringLengthPtr |
SQL_DESC_OCTET_LENGTH_PTR |
SQL_DESC_OCTET_LENGTH_PTR Для параметра, возвращающего табличное значение, этот параметр равен числу строк для переноса или значению SQL_DATA_AT_EXEC. Это — указатель на значение, содержащее количество строк, которые должны быть переданы с помощью вызова функции SQLExecDirect. |
IndicatorPtr |
SQL_DESC_INDICATOR_PTR |
SQL_DESC_INDICATOR_PTR |
Дополнительные сведения о возвращающих табличное значение параметрах см. в разделе Возвращающие табличное значение параметры (ODBC).
Поддержка методом SQLSetDescRec улучшенных функций даты и времени
Для типов даты и времени допускаются следующие значения.
Type |
SubType |
Length |
Precision |
Scale |
|
---|---|---|---|---|---|
datetime |
SQL_DATETIME |
SQL_CODE_TIMESTAMP |
4 |
3 |
3 |
smalldatetime |
SQL_SQL_DATETIME |
SQL_CODE_TIMESTAMP |
8 |
0 |
0 |
date |
SQL_DATETIME |
SQL_CODE_DATE |
6 |
0 |
0 |
time |
SQL_SS_TIME2 |
0 |
10 |
0..7 |
0..7 |
datetime2 |
SQL_DATETIME |
SQL_CODE_TIMESTAMP |
16 |
0..7 |
0..7 |
datetimeoffset |
SQL_SS_TIMESTAMPOFFSET |
0 |
20 |
0..7 |
0..7 |
Дополнительные сведения см. в разделе Улучшенная обработка даты и времени (ODBC).
Поддержка методом SQLSetDescRec больших определяемых пользователем типов в среде CLR
Метод SQLSetDescRec поддерживает большие определяемые пользователем типы данных CLR. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).
См. также
Основные понятия
Подробности реализации API-интерфейса ODBC