Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Хранение файлов в БД


Автор: Kesh 27.12.2003, 19:19
Порекомендуйте, где можно почитать на тему хранения различных файлов (архивов, документов и др.) в БД.
БД - Oracle 9i

P.S. Если можно, с реализацией этого на Delphi///

Автор: Vit 29.12.2003, 01:40
BLOB поля

Автор: Kesh 29.12.2003, 18:49
И чего с ними делать?..

Автор: Kesh 29.12.2003, 18:51
2 Vit: ты же хорошо разбираешься в Delphi, подкинь примерчик, как в БД Oracle в таблицу можно сохранить документ Word. Я использую Delphi+ODAC...

P.S. Заранее спасибо...

Автор: Vit 29.12.2003, 23:24
С оракл'ом не работал. Если теоретически рассуждать, то работа с BLOB полями есть в нашем FAQ. Большего я тебе сказать не могу.

Автор: Kesh 30.12.2003, 13:05
Ладно, все равно огромный тебе thancks...

Автор: Paradox 30.12.2003, 14:12
Код
IBSQL_DB.SQL.Text:='insert into UR_FORMS (REPFORM) values(:REPFORM)';
 IBSQL_DB.ParamByName('REPFORM').LoadFromFile('C:\testfile.doc');
  IBSQL_DB.ExecQuery;

IBSQL_DB - типа TIBQuery

Автор: Paradox 30.12.2003, 14:13
Естественно REPFORM в примере является BLOB полем

Автор: Kesh 30.12.2003, 16:31
2 Paradox Спасибочки, только TIBQuery - это разве не для InterBase?
Ладно, я думаю, работа с Oracle в этом контексте не сильно отличается...

Автор: Kesh 14.1.2004, 14:45
Paradox А где еще можно про это почитать...

Автор: Vit 3.11.2004, 21:52
Перенесено из баз данных

Автор: LSD 3.11.2004, 23:11
Есть еще вариант с BFILE, там будут файлы в чистом виде.
Добавлено @ 23:13
Черт, а дата вопроса то :D

Автор: Sleepy_PIP 27.11.2004, 21:41
Цитата(LSD @ 3.11.2004, 23:11)
Есть еще вариант с BFILE, там будут файлы в чистом виде.
Добавлено @ 23:13
Черт, а дата вопроса то smile

вот тебе добавление любого ф. через ODAC к сожалению только с прмым апдейтом таблицы:
Код

//=============================================================================
function AddFileAtt(const inr: TMbMailMsg; const midh, i: longint): longint;
var
idatt: longint;
begin
   with datam.AddFileAttachSP do
   begin
       ParamByName('PID_MAIL_H').AsInteger:=midh;
       ParamByName('PFILENAME').AsString:=TAttFile(inr.FAttFiles.Items[i]).FILENAME;
       ExecProc;
       idatt:=ParamByName('RESULT').AsInteger;
   end;

   with datam.UpdateAttQ do
   begin
       Prepare;
       ParamByName('PATT').AsBlobRef.LoadFromStream(TAttFile(inr.FAttFiles.Items[i]).AttData);
       ParamByName('PIDATT').AsInteger:=idatt;
       Execute;
   end;
   Result:=idatt;

end;



Одак 2.5 ...
к сожалению через stored proc можно работать только да 32к файла (параметра), поэтому прямой апдейт таблицы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)