Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > AdoQuery параметры запроса обновление Blob


Автор: Darked 13.12.2010, 15:09
       Доброе время стуок.
  
   Помогите пожалуйста совладать с C++ Builder XE на Windows 7 x64 и попыткой обновления blob-поля в базе mysql таким вот образом:
   
Код

  adoConn->BeginTrans();

  adoQry->Close();
  adoQry->SQL->Clear();

  adoQry->SQL->BeginUpdate();
  adoQry->SQL->Add("UPDATE images SET image = :IMG WHERE id = :ID;");
  adoQry->SQL->EndUpdate();

  adoQry->Parameters->ParamByName("IMG")->LoadFromFile(fileName, ftBlob);     // грузится gif файл с небольшой картинкой
  adoQry->Parameters->ParamByName("ID")->Value = IntToStr(idImg);

  adoQry->ExecSQL();
            
  adoConn->CommitTrans();


   Получаю ошибку при попытке обновления записи в БД:
Цитата

 exception class EOleException: "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом".

Автор: ZVano 17.12.2010, 10:52
Попробуй так.
Код

...
//Установка текста запроса - Автозакрытие, атоочистка, автопарсинг SQL
adoQry->SQL->Text = "UPDATE images SET image = :IMG WHERE id = :ID";
// грузится gif файл с небольшой картинкой
adoQry->Parameters->ParamByName("IMG")->LoadFromFile(fileName, ftBlob);
adoQry->Parameters->ParamByName("ID")->Value = IntToStr(idImg);
adoQry->ExecSQL();
...

Автор: Darked 8.7.2011, 12:12
Цитата(ZVano @  17.12.2010,  10:52 Найти цитируемый пост)
Попробуй так...

   Всё также и на томже месте... С теми же ошибками...

Автор: Данкинг 8.7.2011, 12:43
Там как-то через стрим делается... 

Автор: artsb 8.7.2011, 13:33
Когда я работал с MS SQL, у меня тоже возникали проблемы с блобами при использовании типа ftBlob. Попробуйте заменить его на ftString.

Добавлено через 6 минут и 59 секунд
Кстати, а какой тип у поля с картинкой?

Автор: ZVano 11.7.2011, 09:31
Цитата(Darked @  13.12.2010,  15:09 Найти цитируемый пост)
adoQry->Parameters->ParamByName("IMG")->LoadFromFile(fileName, ftBlob); 

А если так попробовать?
Код

((TBlobField*)adoQry->ParamByName("IMG"))->LoadFromFile(fileName);


http://www.sql.ru/faq/faq_topic.aspx?fid=334 статейка на тему "Вставка картинки (файла) в поле таблицы и работа с Blob полями" (работа с MS SQL Server через ADO). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)