Главная страница
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.035 c
15-1145336032
Иксик
2006-04-18 08:53
2006.05.14
Мамы


2-1146109378
_Hawk_
2006-04-27 07:42
2006.05.14
Подскажите пожалуйста!


2-1146075862
sda
2006-04-26 22:24
2006.05.14
Добавление пункта меню MenuItem в два других пункта


2-1145961103
Близнец
2006-04-25 14:31
2006.05.14
ADO или BDE


15-1145119833
Bogdan1024
2006-04-15 20:50
2006.05.14
А где можно найти перевод характеристик американских диодов