Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.11;
Скачать: CL | DM;

Вниз

Сохранение BLOB в таблицу   Найти похожие ветки 

 
TRESDA   (2006-12-13 13:11) [0]

Мир Вам великие Мастера!!

Такая проблема возникла при передачи при помощи 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"

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

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


 
TRESDA   (2006-12-14 06:55) [1]

Пробую еще делать так, на первой кнопке загружаю картинку в DBImage, а во второй отправляю с DBIMAGE в таблицу house.

Процедура первой кнопки:
Var B: TBitmap;
begin
if messagedlg("Добавить изображение?", mtwarning, [mbYes, mbNo],0)=mrNo
then
exit
else
dbimage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
try
if OpenPictureDialog1.Execute then
begin
B := TBitmap.Create;
B.LoadFromFile(OpenPictureDialog1.FileName);
DBImage1.Picture.Assign(B);
end
else
exit;
finally
B.Free;

Процедура второй кнопки:

with form1.ADOQuery1 do
begin
sql.clear;
SQL.add("insert into house (image) ");
sql.add(" values (:image)");
parameters.ParamValues["image"]:=B;
execsql;

Вываливает ошибка:
"Variant" and "TBitmap"

Однако здесь он от меня ждёт опять Variant, а я ему TBitmap даю.

Блин что делать? У кого может другие вариант есть??? ГОРЮ!!!


 
ЮЮ ©   (2006-12-14 07:11) [2]


> Однако здесь он от меня ждёт опять Variant, а я ему TBitmap
> даю.


Самый лучший variant тут, ИМХО, varString. А вот каким образом ты устаноаишь длину строки и заполнишь её байтами - куча способов.


 
Tresda   (2006-12-14 07:45) [3]

select * from dbo.TableImage
insert into TableImage(MyImage) values ("c:\11.bmp")

Сработало. Но в поле запись такого типа
MyImage                                                                                                                                            0x633A5C31312E626D70
как посмотреть не знаю.

Попробую большую и с расширением другим.
insert into TableImage(MyImage) values ("c:\06_podborka_8.jpg")
Тоже срабатывает .
0x633A5C30365F706F64626F726B615F382E6A7067


 
ЮЮ ©   (2006-12-14 08:47) [4]

values ("c:\11.bmp")
Издеваешься? :)  Именно "c:\11.bmp" там и записано. Надо задать переменной типа стринд лдлину равную длине файла и поместить в ней СОЖЕРЖИМОЕ файла, с помощью FileStream, например, или FileRead. Ты же поместил ИМЯ ФАЙЛА


 
clickmaker ©   (2006-12-14 10:13) [5]

parameters.items[index].DataType := ftBlob;
parameters.items[index].LoadFromFile(fileName, ftBlob);



Страницы: 1 вся ветка

Текущий архив: 2007.03.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1172000310
dzhagr1
2007-02-20 22:38
2007.03.11
Установка новых компонентов


1-1168961072
AFKer
2007-01-16 18:24
2007.03.11
Вопрос по работе с TWebModule


15-1171473167
GeLLeR
2007-02-14 20:12
2007.03.11
dll и компонент к ней...


1-1168968633
Garacio
2007-01-16 20:30
2007.03.11
найти пустые ячейки в третьем столбце ListView по всем строкам


6-1159651914
Павел789745
2006-10-01 01:31
2007.03.11
Помогите с ПОСт отправкой!