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

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

Как записать Blob в файл


inwin ©   (2003-09-11 14:43:00) 

В таблице Table есть поле типа Blob. Как его содержимое записать в произвольный файл, т.е. типа Table.FieldByName("Blob").SaveToFile("...")?


-= Demon =-   (2003-09-11 15:08:00) [1]

with FieldByName("BlobField") do
не нужно, забыл убрать :)


-= Demon =-   (2003-09-11 15:07:00) [2]

var
ss: TStream;
begin
ss:=qry.CreateBlobStream(FieldByName("BlobField"), bmReadWrite);
SetLength(Buf, ss.Size + 1);
ss.ReadBuffer(Buf[0], ss.Size);
with FieldByName("BlobField") do
begin
{$I-}
AssignFile(f, FileName);
Rewrite(f);
BlockWrite(f, Buf[0], High(Buf) + 1);
CloseFile(f);
{$I+}
end;
end;


Reindeer Moss Eater   (2003-09-11 15:05:00) [3]

CreateBlobStream(FieldByName("Blob"), bmRead)


Reindeer Moss Eater   (2003-09-11 15:03:00) [4]

TBlobField(FieldByName("Blob"))


inwin   (2003-09-11 15:02:00) [5]

> Reindeer Moss Eater
А можно пример? Я еще не шибко все это умею...


Reindeer Moss Eater   (2003-09-11 14:57:00) [6]

bs:=TBlobStream.Create(FieldByName("Blob"), bmRead); -
ругается "incompatible types TBlobField and TField".


1.А приведение типов для кого существует?

2.TDataSet.CreateBlobField


inwin   (2003-09-11 14:51:00) [7]

Делаю:

var
qry: TQuery;
begin
qry:=TQuery.Create(nil);
....
with qry do
begin
SQL.Add("SELECT BlobField FROM Table WHERE ...");
Open;
bs:=TBlobStream.Create(FieldByName("Blob"), bmRead); -
ругается "incompatible types TBlobField and TField". Делаем
bs:=TBlobStream.Create(TBlobField(FieldByName("Blob")), bmRead); - ошибка при выполнении


Reindeer Moss Eater   (2003-09-11 14:46:00) [8]

TBlobStream и его методы


Наверх

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