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


SQLPutData

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

  • Параметром, на который имеется ссылка, может быть insert_value в инструкции INSERT.

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

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

ПримечаниеПримечание

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

Диагностика

Один атрибут SQLSTATE собственного клиента SQL Server относится к SQLPutData:

SQLSTATE

Ошибка

Описание

22026

Строковые данные, несовпадение длины

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

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

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

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

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

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

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

Если параметр 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. Дополнительные сведения см. в разделе Определяемые пользователем типы данных больших значений CLR (ODBC).

См. также

Основные понятия

Другие ресурсы