powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQLPutData -> Ошибка 22001 (String data right truncation)
1 сообщений из 1, страница 1 из 1
SQLPutData -> Ошибка 22001 (String data right truncation)
    #40029042
Идеальный кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возился кто-нибудь уже с SQLPutData, SQLGetData для для операций с большими VARBINARY?

У меня такая ситуевина. Нужно на C написать программу, способную читать и запсывать BLOB-ы заранее неизвестного размера. Поле в таблице - VARBINARY(MAX). Идея - читать и писать сегментами, а полю в программе аллоцировать выделять память, увеличивая по мере надобности.

Почитал инструкцию по пользованию SQLBindParameter, SQLParamData, SQLPutData (для записи) и SQLGetData (для чтения). Попробовал сначала массив 40К заполнить цифирками 0-9, записать сегментами по 1К и потом прочитать - всё работает. На втором шаге читаю реальную таблицу с записанной картинкой. Размер по DATALENGTH() - 7233 байта. Прочиталось нормально. Пытаюсь прочитанное снова записать сегментами по 1К. Пока записываю первые 7 сегментов - все ОК, на последних 233 байтах - вылезает ошибка 22001 (String data right truncation). От чтения описания ошибки в документации майкрософта умнее не стал :-(. Остаток массива после 7233 заполнен бинарными нулями - откуда драйвер берет, что "more data was send for a long parameter... than was specified in the length buffer"??? Уже все перепробовал - не знаю где копать!
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQLPutData -> Ошибка 22001 (String data right truncation)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]