Бөлісу құралы:


Тип ODBC SQL для параметров, возвращающих табличное значение

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Поддержка возвращающих табличное значение параметров обеспечивается новым типом ODBC SQL — SQL_SS_TABLE.

Замечания

SQL_SS_TABLE нельзя преобразовать в любой другой тип данных ODBC или SQL Server.

Если SQL_SS_TABLE используется в качестве типа данных C в параметре ValueType SQLBindParameter, либо выполняется попытка задать SQL_DESC_TYPE в SQL_SS_TABLE записи дескриптора параметра приложения (APD), SQL_ERROR возвращается, SQL_ERROR создается с помощью SQLSTATE=HY003, "Недопустимый тип буфера приложения".

Если SQL_DESC_TYPE устанавливается в IPD-записи в значение SQL_SS_TABLE, а соответствующая запись дескриптора параметра приложения не SQL_C_DEFAULT, то возвращается значение SQL_ERROR и создается диагностическая запись с кодом SQLSTATE=HY003 и сообщением «Недопустимый тип буфера приложения». Это может произойти с типом параметров SQLSetDescField, SQLSetDescRec или SQLBindParameter.

Если параметр TargetType SQL_SS_TABLE при вызове SQLGetData, возвращается SQL_ERROR и создается диагностическая запись с помощью SQLSTATE=HY003, "Недопустимый тип буфера приложения".

Столбец возвращающего табличное значение параметра не может привязываться в виде типа SQL_SS_TABLE. Если функция SQLBindParameter вызывается с параметром ParameterType типа SQL_SS_TABLE, то возвращается значение SQL_ERROR и создается диагностическая запись с кодом SQLSTATE=HY004 и сообщением «Недопустимый тип данных SQL». Это также может происходить с SQLSetDescField и SQLSetDescRec.

Значения столбца возвращающего табличные значения параметра имеют те же возможности преобразования данных, как параметры и результирующие столбцы.

Параметр с табличным значением может быть только входным параметром в SQL Server 2008 (10.0.x) или более поздней версии. Если предпринята попытка задать SQL_DESC_PARAMETER_TYPE значение, отличное от SQL_PARAM_INPUT через SQLBindParameter или SQLSetDescField, возвращается SQL_ERROR, а в инструкцию с помощью SQLSTATE=HY105 добавляется запись диагностики и сообщение "Недопустимый тип параметра".

Столбцы возвращающего табличное значение параметра не могут использовать в качестве параметра StrLen_or_IndPtrзначение SQL_DEFAULT_PARAM, так как значения по умолчанию не поддерживаются возвращающими табличное значение параметрами. Вместо этого приложение может установить атрибут столбца SQL_CA_SS_COL_HAS_DEFAULT_VALUE в значение 1. Это значит, что во всех строках столбца будут значения по умолчанию. Если для StrLen_or_IndPtr задано значение SQL_DEFAULT_PARAM, SQLExecute или SQLExecDirect возвращает SQL_ERROR, а в инструкцию будет добавлена запись диагностики с помощью SQLSTATE=HY090 и сообщение "Недопустимая строка или длина буфера".

См. также

Возвращающие табличные значения параметры (ODBC)