Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.46 MB
Время: 0.038 c
2-1130050454
beglec
2005-10-23 10:54
2005.11.13
Можно ли узнать имя процедуры.


14-1129750882
romychk
2005-10-19 23:41
2005.11.13
ошибка при загрузке ноутбука "1702-smart hard drive detects immi"


1-1129891440
DelphiLexx
2005-10-21 14:44
2005.11.13
Движение компонента


14-1129711807
CCCP
2005-10-19 12:50
2005.11.13
dxDBGrud


3-1128075747
jeka_t
2005-09-30 14:22
2005.11.13
Какими компонентами лучше всего подключаться к базе MySQL?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский