Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

JPG в базу данных [D5, Paradox]


Zak ©   (2002-03-26 08:52:00) 

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

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


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

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


ALFA   (2002-03-26 17:26:00) [2]

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

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

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


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

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


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

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

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;

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


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

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


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

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


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

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


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;


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо