Главная страница
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.026 c
4-1085917441
Гость с юга
2004-05-30 15:44
2004.07.11
Открыть файл в Notepad ReadOnly


1-1088070116
Alek
2004-06-24 13:41
2004.07.11
Как закрыть процесс?


1-1087470362
COOLer
2004-06-17 15:06
2004.07.11
чтение word DOC формата


14-1087977890
infom
2004-06-23 12:04
2004.07.11
Где можно скачать видео голы с Евро2004 только не RealOne?


3-1087217688
vlad_ri
2004-06-14 16:54
2004.07.11
список баз данных на MS SQL сервере