Форум: "Базы";
Текущий архив: 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