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

Вниз

Чтение курсора (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
8-1082884490
Menel
2004-04-25 13:14
2004.07.11
Отображение окружности с выделенными точками на ней...


3-1087254139
Older22
2004-06-15 03:02
2004.07.11
Поиск подстроки в строкие для поля БД


3-1087319316
Дэвид
2004-06-15 21:08
2004.07.11
Трехзвенная архитектура TDCOMConnection


10-1018514439
comwad
2002-04-11 12:40
2004.07.11
Принцип построения сервера CORBA в VisiBroker 4.1 DELPHI 6


1-1088117703
ZiRoCool
2004-06-25 02:55
2004.07.11
Сворачивание главной формы