Форум: "Базы";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизЧтение курсора (c BLOB )из Хранимой процедуры ORACLE в BDE Найти похожие ветки
← →
Axelrodm © (2004-06-13 13:39) [0]ORACLE 8i
CLIENT-SERVER
Имеется Хр. Прос. возвращающая BLOB.
PACKAGE ManageBlob AS
TYPE tAbstract IS REF CURSOR;
..................................
procedure GetBlobFromTable(ID IN Integer, TableName in varchar, CUR IN out tAbstract) is
BL BLOB:=NULL;
ID_COL varchar2(250);
begin
ID_COL:=GetPrimKeyCol(TableName);
open CUR for
" select * from "||TableName||" where "||ID_COL||"="||ID;
end GetBlobFromTable;
При обращении к ней через TStoredProc возвращаются только 32К.
procedure TDMod.GET_BLOB (strm: TStream);
begin
StProcGetBL.Close;
StProcGetBL.ParamByName("ID").AsInteger:=ID_CH_BL;
StProcGetBL.Open;
QTmp:=StProcGetBL as tQuery;
BL_F:=(StProcGetBL.FieldByName("NAME") as TBlobField);
Bl_F.SaveToStream(Strm);
StProcGetBL.Close;
end;
При работе с BLOB через TQuary все нормально
procedure TDMod.GET_BL_Ch_BL(strm: TStream);
var
str: string;
begin
str:="select * from CH_BL where CH_BL.ID="+IntToStr(ID_CH_BL);
("+IntToStr(ID_CH_BL)+") into :NAME from dual end;";
CreSQLText(QTmp,str);
QTmp.Open;
BL_F:=(QTmp.FieldByName("NAME") as TBlobField);
if strm = nil then
exit;
Bl_F.SaveToStream(Strm);
QTmp.Close;
end;
Резултат одинаков в DELPHI5 и DELPHI7
В чем проблема?
← →
Внук © (2004-06-13 23:49) [1]А проблема, вероятно, в реализации TStoredProc. Точнее, в ее ограниченных возможностях при работе с Oracle. Сам сталкивался, например, с такой ситуацией, когда при работе в связке BDE->ODBC->Oracle через TStoredProc невозможно получить результирующее значение хранимой функции. Через TQuery все нормально.
Вообще, видел где-то список всех багов TStoredProc, опубликованный Borland-ом, ссылку не помню, к сожалению. Там, например, сказано, что TStoredProc позволяет в хранимой процедуре иметь не более 10 параметров и т.д.
Все вышесказанной относится к Delphi5.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.027 c