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


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.

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

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

Примечание

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

Диагностика

Существует один SQL Server Native Client sqlSTATE для SQLPutData:

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

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

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

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

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

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

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

Если 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. Дополнительные сведения см. в статье Крупные типы User-Defined CLR (ODBC).

См. также:

SQLPutData, функция
ODBC API Implementation Details