Форум: "Базы";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Внизкак запостить файл в поле BLOB для INTERBASE? Найти похожие ветки
← →
Analitik © (2005-09-02 18:13) [0]ДОбрый день!
Есть проблема: как запостить файл в 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;
← →
Desdechado © (2005-09-02 18:54) [1]а транзакцию подтвердить не пробовал?
и что значит "ничего не происходит"? В базу смотрел после выполнения?
← →
Alexandr © (2005-09-03 07:29) [2]сначата post потом free.
О, так у тебя еще и стрим закрывается до поста?
короче где-то на ibase.ru было на этот счет написано
← →
Analitik © (2005-09-09 19:56) [3]Ок, все работает.
Можно было не извращаться с потоками:)
код:
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;
Спасибо за ответы:)
← →
oleg_ (2005-09-28 22:16) [4]А если через query? то как?
← →
Desdechado © (2005-09-28 22:43) [5]то же самое
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-29 10:34) [6]->Desdechado ©
спасибо все стало понятно
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c