Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > AdoStoredProc & Oracle


Автор: Paradox 9.12.2005, 09:37
Всем привет!
Подскажите плз как можно вернуть в какую нить переменную дельфи массив значений.
есть хранимая процедура на Oracle формирующая этот массив
а как его использовать затем на клиенте ума не приложу
со всеми остальными параметрами получается, а с массивом нет...

код хранилки
Код

CREATE OR REPLACE
TYPE IntArray AS TABLE OF NUMBER;

CREATE OR REPLACE PROCEDURE GetDeltaNumbersForPeriod(
  datebegin IN DATE,
  dateend IN DATE,
  dtype IN VARCHAR2,
  dnumbers OUT IntArray, --с этим параметром проблема вернуть его клиенту
  dcount OUT NUMBER,
  errcode OUT NUMBER,
  errmess OUT VARCHAR2
)
IS
vCNT NUMBER;
BEGIN
  SELECT COUNT(1) 
    INTO vCNT
    FROM DELTAS_HISTORY
    WHERE UPPER(objecttype)=UPPER(dtype) AND
          createdate BETWEEN datebegin AND dateend;
  IF (vCNT>0) THEN
    dnumbers.extend(vCNT);
    SELECT delta_id 
      BULK COLLECT INTO dnumbers
      FROM DELTAS_HISTORY
      WHERE UPPER(objecttype)=UPPER(dtype) AND
            createdate BETWEEN datebegin AND dateend; 
    dcount:=vCnt;
  ELSE
    dcount:=0;           
  END IF;    
  
  EXCEPTION
    WHEN OTHERS THEN
      errcode:=SQLCODE;
      errmess:=trim(SQLERRM);    
      dcount:=0;  
           
END;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)