SQLPutData
Применимо: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform 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 | Ошибка | Описание |
---|---|---|
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