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

Вниз

Добавить/прочитать JPEG-картинку в базу данных   Найти похожие ветки 

 
avr555 ©   (2002-10-14 17:01) [0]

Нужно мне добавить в базу данных JPG-картинку.
В инете я нашл такое решение:

if Picture.Graphic is TJPegImage then begin
bs := TBlobStream.Create(TBlobField(Field), bmWrite);
Picture.Graphic.SaveToStream(bs);
bs.Free;
end else if Picture.Graphic is TBitmap then begin
Jpg := TJPegImage.Create;
Jpg.CompressionQuality := ...;
Jpg.PixelFormat := ...;
Jpg.Assign(Picture.Graphic);
Jpg.JPEGNeeded;
bs := TBlobStream.Create(TBlobField(Field), bmWrite);
Jpg.SaveToStream(bs);
bs.Free;
Jpg.Free;
end else
Field.Clear;


Но, как я понял это решение для случая, когда обращение идет непосредсвенно к таблице.

У меня же добавление происходит через ADOCommand (INSERT INTO ...)
В ADOCommand я создал параметр и попытался сделать тоже что и для поля но с использованием Field->ADOCommand1.Parameters.Items[0]. Но во время создания TBlobStream получается Access Violation

Что делать?


 
Fiend ©   (2002-10-14 17:49) [1]

а в адоклмманд надо помоему сначала параметры пропарсить. у нее там метод есть у параметров


 
avr555 ©   (2002-10-14 18:02) [2]

Можно по-подробнее?


 
avr555 ©   (2002-10-15 15:36) [3]

Я уже и через TMemoryStream попробовал.

Только при чтении возникает ошибка #41. Как я понял она возникает, когда у картинким нулевая ширина. Следовательно, запись в базу данных осуществляется неправильно.

Вопрос: что делать?


 
avr555 ©   (2002-10-17 16:11) [4]

Сам докопался:
Для занесения:
tmp := TJpegImage.Create;
tmp.LoadFromFile(Edit1.Text);


TBlobField(ADOCommand1.Parameters.Items[0]).Assign(tmp);



ADOCommand1.Execute;


Для отображения:
with ADOQuery1 do
begin
Active := false;
Parameters.ParamValues["ID"] := 34;
Active := true;

tmp.Assign(TBlobField(FieldByName("Pict")));
Image1.Picture.Assign(tmp);

end;


Может кому пригодится...



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-21542
Andy78
2002-10-29 15:14
2002.11.07
RXLib 2.75


1-21616
lena13
2002-10-26 09:37
2002.11.07
Что и как надо обрабатывать?


1-21491
Z-Yuri
2002-10-28 17:55
2002.11.07
Как создать несколько экземпляров немодальных форм?


14-21740
dimonf
2002-10-17 17:26
2002.11.07
Народ, подскажите как вытащить данные из базы данных.


3-21365
Карелин Артем
2002-10-17 12:34
2002.11.07
Пишу картинку в Blob, записываю из базы на диск, жму ctrl-f2 в D.