![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как запостить файл в поле BLOB для INTERBASE? [D6, IB6.x]
Analitik © (2005-09-02 18:13:00)ДОбрый день!
Есть проблема: как запостить файл в BLOB-поле в СУБД Interbase (прога на Delphi)?
следующий код работает для MS Access, но не принимается INterbase. Компилятор не ругается, просто ничего не происходит.
код:
var
blob: TStream;
fs : TStream;
begin
IBTable1.Insert;
blob := IBTable1.CreateBlobStream(IBtable1.FieldByName('TMP_DOC'),bmWrite);
try
blob.Seek(0, soFromBeginning);
fs := TFileStream.Create('D:\mm.doc', fmOpenRead or fmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blob.Free;
IBTable1.Post;
end;
Oleg_ (2005-09-29 10:34:00) [1]->Desdechado ©
спасибо все стало понятно
Desdechado (2005-09-28 22:43:00) [2]то же самое
Query1.Sql.Text :=
'INSERT INTO testblob ' +
' ( ' +
' fBlob' +
' )' +
' VALUES' +
' (' +
' :ParamBlobField' +
')';
Query1.ParamByName('ParamBlobField').DataType := ftBlob;
Query1.ParamByName('ParamBlobField').ParamType := ptInput;
Query1.ParamByName('ParamBlobField').LoadFromFile('MyFile',ftBlob);
Query1.ExecSql;
oleg_ (2005-09-28 22:16:00) [3]А если через query? то как?
Analitik (2005-09-09 19:56:00) [4]Ок, все работает.
Можно было не извращаться с потоками:)
код:
begin
Database1.Open;
if Database1.Connected then
begin
Table1.Open;
Transaction1.Active:=true;
Table1.Insert;
Table1Field1.LoadFromFile(filename);
Table1.Post;
Table1.Close;
Transaction1.Commit;
end;
end;
Спасибо за ответы:)
Alexandr (2005-09-03 07:29:00) [5]сначата post потом free.
О, так у тебя еще и стрим закрывается до поста?
короче где-то на ibase.ru было на этот счет написано
Desdechado (2005-09-02 18:54:00) [6]а транзакцию подтвердить не пробовал?
и что значит "ничего не происходит"? В базу смотрел после выполнения?