Консультация № 66811
13.12.2006, 13:42
0.00 руб.
0 3 1
Мир Вам великие Мастера!!

Такая проблема возникла при передачи при помощи SQL-запроса картинки загруженной в DBImage1 в таблицу.

Делаю всё при помощи следующего запроса:
with form1.ADOQuery1 do
begin
SQL.add(‘insert into house (image) ‘);
sql.add(‘ values (:image)‘);
parameters.ParamValues[‘image‘].LoadFromFile(OpenPictureDialog1.FileName);
execsql;

Однако при отработке запроса вылетает сообщение:
"Invalid variant operation"

Грабли в принципе понятно в чем, но как с ними справиться.

Заранее Большое спасибо за оказанную помощь, действительно ОЧЕНЬ нужно сделать

Обсуждение

давно
Мастер-Эксперт
425
4118
13.12.2006, 16:34
общий
это ответ
Здравствуйте, Tresda!
И Вам тоже мир, причем нерушимый. :)
Видимо суть ошибки Вы все же не поняли, раз не можете ее решить.
Дело в том, что ParamValues[‘image‘] ждет что Вы ему присвоите значение типа Variant, Вы же коварно обманули ожидание доверчивого компонента. :)
Надо сделать так:
ADOQuery1.Parameters.ParamByName(‘Image‘).LoadFromFile(OpenPictureDialog1.FileName);
Вот теперь параметр будет получать именно то, что он ожидал от Вас увидеть. :)
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
14.12.2006, 06:36
общий
2sir henry Спасибо за совет, но я так уже пробовалОднако он ругается"Not enough actual parameters"
Неизвестный
14.12.2006, 06:48
общий
Пробую еще делать так, на первой кнопке загружаю картинку в DBImage, а во второй отправляю с DBIMAGE в таблицу house.Процедура первой кнопки:Var B: TBitmap;beginif messagedlg(‘Добавить изображение?‘, mtwarning, [mbYes, mbNo],0)=mrNothenexitelsedbimage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);tryif OpenPictureDialog1.Execute thenbeginB := TBitmap.Create;B.LoadFromFile(OpenPictureDialog1.FileName);DBImage1.Picture.Assign(B);endelseexit;finallyB.Free;Процедура второй кнопки:with form1.ADOQuery1 dobeginsql.clear;SQL.add(‘insert into house (image) ‘);sql.add(‘ values (:image)‘);parameters.ParamValues[‘image‘]:=B;execsql;Вываливает ошибка:‘Variant‘ and ‘TBitmap‘ Однако здесь он от меня ждёт опять Variant, а я ему TBitmap даю.Блин что делать? У кого может другие вариант есть??? ГОРЮ!!!
Форма ответа