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


SQLPutData

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Следующие ограничения применяются при использовании SQLPutData для отправки более 65 535 байт данных (для SQL Server версии 4.21a) или 400 КБ данных (для SQL Server версии 6.0 и более поздних версий) для столбца SQL_LONGVARCHAR (текст), SQL_WLONGVARCHAR (ntext) или столбца SQL_LONGVARBINARY (изображение):

  • Указанный параметр может быть insert_value в инструкции INSERT.

  • Указанный параметр может быть выражением в предложении SET инструкции UPDATE.

Отмена последовательности вызовов SQLPutData, которые предоставляют данные в блоках серверу, на котором выполняется SQL Server, приводит к частичному обновлению значения столбца при использовании версии 6.5 или более ранней. Столбец текста, ntext или изображения , на который ссылался при вызове SQLCancel, имеет промежуточное значение заполнителя.

Заметка

Драйвер ODBC собственного клиента SQL Server не поддерживает подключение к SQL Server версии 6.5 и более ранних версий.

Диагностика

Существует один sql Server Native Client, конкретный SQLSTATE для SQLPutData:

SQLSTATE Error Description
22026 Строковые данные, несовпадение длины Если длина отправленных данных в байтах была указана приложением, например с SQL_LEN_DATA_AT_EXEC(n), где n больше 0, общее число байтов, заданное приложением через SQLPutData, должно соответствовать указанной длине.

Функция SQLPutData и параметры, возвращающие табличные значения

SQLPutData используется приложением при использовании привязки строк переменной с табличными параметрами. Параметр StrLen_Or_Ind указывает, что он готов к сбору данных для следующей строки или строк данных параметра с табличным значением или что больше строк не доступны:

  • Значение, большее 0, указывает на доступность следующего набора значений строки.

  • Значение 0 указывает, что строк для отправки больше нет.

  • Значение меньше 0 является ошибочным и приводит к внесению в журнал диагностической записи со значением SQLState, равным HY090, и сообщением «Недопустимая длина строки или буфера».

Параметр DataPtr игнорируется, но должен иметь значение, отличное от NULL. Дополнительные сведения см. в разделе о привязке строк Переменной TVP в привязке и передаче данных параметров табличного значения и значений столбцов.

Если StrLen_Or_Ind имеет любое значение, отличное от SQL_DEFAULT_PARAM или число от 0 до SQL_PARAMSET_SIZE (то есть параметр ColumnSize SQLBindParameter), это ошибка. Эта ошибка приводит к возврату sqlPutData SQL_ERROR: SQLSTATE=HY090, "Недопустимая строка или длина буфера".

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

Поддержка функции SQLPutData для улучшенных функций даты-времени

Значения параметров типов даты и времени преобразуются, как описано в разделе "Преобразования из C в SQL".

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

Поддержка функции SQLPutData для больших определяемых пользователем типов данных CLR

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

См. также

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