Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

Вставка файла в поле LOB Oracle   Найти похожие ветки 

 
RealGanj   (2006-03-18 18:03) [0]

На сервере есть таблица с полем BLOB. Нужно с рабочей станции в столбец  BLOB вставить текст файла, например C:\Temp\Temp.rft.  Как его потом считать?


 
Desdechado ©   (2006-03-18 19:42) [1]

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;

Считать - наоборот


 
Reindeer Moss Eater ©   (2006-03-18 19:47) [2]

Не все так просто.


 
Desdechado ©   (2006-03-18 20:38) [3]

> Не все так просто.
мы не ищем легких путей?


 
RealGanj   (2006-03-18 21:21) [4]


> 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;


Код работает только для маленьких файлов. Мне нужно большие.


 
Desdechado ©   (2006-03-18 22:09) [5]

маленькие-большие - граница "нерабочести" какая?
если БДЕ, смотри настройки драйвера


 
RealGanj   (2006-03-20 14:13) [6]

Робочий код (працює з файлами будь-яких розмірів):
На сервері Oracle прописується така процедура:
CREATE OR REPLACE PROCEDURE BlobTableUpdate (p_Id NUMBER, p_Name VARCHAR2,
                          p_Value out  BLOB)
is
begin
 UPDATE BlobTable
 SET
   Name = p_Name,
   Value = EMPTY_BLOB()
 WHERE
   Id = p_Id
 RETURNING
   Value
 INTO
   p_Value;
end;
В Delphi або С++Builder:
StoredProc1->StoredProcName = "BlobTableUpdate";
StoredProc1->Prepare();
StoredProc1->ParamByName("p_Id")->AsInteger = 0;
StoredProc1->ParamByName("p_Name")->AsString = Name;
StoredProc1->ParamByName("p_Value")->ParamType = ptInput;
StoredProc1->ParamByName("p_Value")->AsBLOBLocator->LoadFromFile("c:\\D02_747.RTF");
StoredProc1->Execute();


 
ANB ©   (2006-03-20 14:18) [7]


> RealGanj   (20.03.06 14:13) [6]

Официальный язык русский. Переведи и запости еще раз, так как этот пост сейчас удалят.


 
ANB ©   (2006-03-20 14:20) [8]

Как считать :
1) select Value from BlobTable where ID = :ID.
Потом вытащить блоб из поля стримом.
Для конкретного совета нужно знать, какими компонентами стучишься к ораклу.


 
Sergey13 ©   (2006-03-20 14:24) [9]

StoredProc1->ParamByName("p_Value")->ParamType = ptInput;



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.05 c
6-1137758006
Юрий Ж.
2006-01-20 14:53
2006.05.14
[?]Служба сообщений


15-1145191437
Pazitron_Brain
2006-04-16 16:43
2006.05.14
CMS без баз данных


4-1140359306
Nick Denry
2006-02-19 17:28
2006.05.14
Как получить кусочек Background a?


1-1144157304
Кашперук Иван
2006-04-04 17:28
2006.05.14
Как сделать увеличение ширины колонки по dblclck


2-1146048913
Meganop
2006-04-26 14:55
2006.05.14
Вызов exe