Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];

Вниз

Вставка файла в поле 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
2-1145852307
Westbronx
2006-04-24 08:18
2006.05.14
Работа с текстом


15-1145366258
oldman
2006-04-18 17:17
2006.05.14
Что не видел ни одного поста по поводу...


15-1145427644
DelphiN!
2006-04-19 10:20
2006.05.14
Экспорт графика из TChart в Excel


1-1144268190
MBBIII
2006-04-06 00:16
2006.05.14
Создание и отладка Dll


1-1144049500
DelphiLexx
2006-04-03 11:31
2006.05.14
FindDialog и Delphi2005 проблема с русскмим буквами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский