![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запись произвольного файла в поле BLOB Firebird [D7, FireBird]
starling13 © (2004-08-25 14:21:00)Предлагаемф helpom способ
MyIBBlobBlobStream:=Dataset1.CreateBlobStream(Dataset1.FieldByName('MyBLOBFld') as TBlobField, bmReadWrite);не может работать, т.к CreateBlobStreamозвращает TSream, а у него нет метода LoadFromFile.
MyIBBlobBlobStream.LoadFromFile('FileName');
Dataset1.Post
сли обнаглеть и написать
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]Скажите, пожплуйста что-нибудь!