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).
См. также
Основные понятия
Подробности реализации API-интерфейса ODBC