Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

JPG в базу данных 


Zak   (2002-03-26 08:52) [0]

ВотЪ. какие макаром поместить в базу рисунок формата jpg.
Может какойнидь компонент есть для этого...
или может надо просто в поле записать содержимое jpg, а потом при выводе (вывод например делается через WEBnavigator) создать jpg переписать содержимое из базы... Только это всё теория... как на практике это сделать я сам не знаю, Подскажите :)

П.С. Может в Дельфи6 есть такая возможность?!



vopros   (2002-03-26 09:04) [1]

Я использовал компненту ImageEn. Вообще-то их куча существует. Попробуй ее, правда не помню откуда скачивал, но думаю найти несложно.



xxc   (2002-03-26 09:25) [2]

Я это делал так:


procedure InsertJpegToDatabase;
var
J:TJpeg;
S:TMemoryStream;
begin
J:=TJpeg.Create;
J.LoadFromFile(JPEGFileName);
S:=TMemoryStream.Create;
J.SaveToStream(S);
S.Position:=0;
Query.SQL.Text:="insert into PICTURES (ID,PIC) values (:ID,:PIC)"; Query.Prepare;
Query.ParamByName("ID").AsInteger:=ID;
Query.LoadFromStream(S);
Query.ExecQuery;
S.Free;
J.Free;
end;



xxc   (2002-03-26 09:31) [3]

сорри за опечатку - вместо
"Query.LoadFromStream(S);" надо "Query.ParamByName("PIC").LoadFromStream(S);"



Johnmen   (2002-03-26 09:51) [4]

>xxc : а зачем Query.Prepare; ?



Zak   (2002-03-26 10:43) [5]

Так я то вставил, но почемуто при выводе файл получается нулевой длины... портак:

J:=TJpegImage.Create;
S:=TMemoryStream.Create;
TBLOBField(Query1.FieldByName("Im")).SaveToStream(S);
шf s.Size>0 then begin
J.LoadfromStream(S);
J.SaveToFile("d:\progi\kc\portret.jpg");
Memo1.Lines.Add("<img src="+""""+"d:\progi\kc\portret.jpg"+""""+">");
end;
J.Free;
S.Free;

хде тут ошибка?



Lfx   (2002-03-26 16:32) [6]

Есть такой класс: TBLOBStream называется. И не надо никаких потенциально (да и реально) глюкавых TMemoryStream использовать. Смотри хелп - пропишешь ему при создании с каким полем работать и дело с концом. НО!!! Его надо создавать перед каждым обращением к данным. Т.е. курсор установил, создал TBLOBStream, выкачал данные, щлепнул TBLOBStream. И т.д.



ALFA   (2002-03-26 17:26) [7]

Должно быть поле (OLE)
............
Table1grafshetgej: TGraphicField;
..................

записать
Table1grafshetgej.LoadFrоmFile("Твой файл.JPG");
Table1.Post;

изъять
Table1grafshetgej.SaveToFile("Твой файл.JPG");



Zak   (2002-04-01 09:05) [8]

А разве в Базу в поле График можно вписать jpgшный файл?




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.065 c
14-70030          antibiotik            2002-03-18 12:04  2002.04.22  
Сеть


1-69921           OrlovSergei           2002-04-09 11:32  2002.04.22  
Как сохранить нарисованное?


3-69720           anod                  2002-03-31 00:27  2002.04.22  
Поиск в таблице и русские буквы


3-69699           Jaric                 2002-03-30 14:26  2002.04.22  
Как общаться через ADO компоненты через SPX/IPX протокол?


14-70027          lipskiy               2002-03-18 17:04  2002.04.22  
Маленький вопросик про Outlook Express