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

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

Запись произвольного файла в поле BLOB Firebird [D7, FireBird]


starling13 ©   (2004-08-25 14:21:00) 

Предлагаемф helpom способ
MyIBBlobBlobStream:=Dataset1.CreateBlobStream(Dataset1.FieldByName('MyBLOBFld') as TBlobField, bmReadWrite);
MyIBBlobBlobStream.LoadFromFile('FileName');
Dataset1.Post
не может работать, т.к CreateBlobStreamозвращает TSream, а у него нет метода LoadFromFile.
сли обнаглеть и написать
MyIBBlobBlobStream:=TIBBlobStream(Dataset1.CreateBlobStream(Dataset1.FieldByName('MyBLOBFld') as TBlobField, bmReadWrite));то ничего хорошего не получается

Другой пример из helpa

procedure MyProc;
var FldStrm: TIBBlobStream;
   TmpStrm: TStream;
begin
  IBDataset1.Edit;
  TmpStrm:=IBDataset1.CreateBlobStream(IBDataset1.FieldByName('MyBLOBFld') as TBlobField, bmReadWrite);
  FldStrm:=TIBBlobStream.Create();
  FldStrm.LoadFromFile('FileName');
  TmpStrm.CopyFrom(FldStrm, FldStrm.Size);
  IBDataset1.Post;
end;

Проходит без ошибок, но поле таблицы остаётся нетронутым.
Нелегко переходить на Delphi после VBA для Access.


Johnmen   (2004-08-25 16:45:00) [1]

Типа того:
S := TFileStream.Create('FileName',fmOpenRead);
S.Seek(0,soFromBeginning);
Edit;
TBlobField(IBDataset1.FieldByName('MyBLOBFld')).LoadFromStream(S);
Post;


И вообще, примеров тонны :)

А в у тебя в последнем варианте не получается потому, что указатель в потоке не установил в начало...


starling13   (2004-08-25 14:46:00) [2]

Скажите, пожплуйста что-нибудь!


Наверх

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