Главная страница
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.023 c
14-1087820393
ИМХО
2004-06-21 16:19
2004.07.11
Вопрос по ICQ


1-1088020143
DDA
2004-06-23 23:49
2004.07.11
Изменение ресурсов


1-1088054964
начинающий
2004-06-24 09:29
2004.07.11
Подскажите, пожалуйста, как выделить фрагмент в RichEdit


1-1087902478
cdadmitriy
2004-06-22 15:07
2004.07.11
Как перерисовать один NODE in TTreeView без изменения текста


3-1086942035
Марат
2004-06-11 12:20
2004.07.11
DBGrid