Конференция "Базы" » Oracle [D7]
 
  • nnnicky (16.12.08 12:19) [0]
    Добрый день!
    Есть некая функция, которая вызывается через экшен.
    Делаю так: в компонент OraQuery пишу запрос:

    SELECT *
    FROM TABLE (SVB_NETTING.build_netting_list  
    (
     iNETTINGNUMBER IN NUMBER,
     dDATENETTING IN DATE,
     sUSERCREATE IN VARCHAR2

    ))RETURN RESULT_ERROR_NT

    Соответственно вызываю:
    procedure TfmHBBankNetting.act_BuildListExecute(Sender: TObject);
    begin
     inherited;
    OraQuery.Execute;
    end;

    Нужно сделать: в случае если RESULT_ERROR_NT содержит записи показать в отдельном окне пользователю.
    Вопрос простенький наверно, но что-то пока не пойму как сделать.


  • Кщд (16.12.08 12:44) [1]

    SELECT *
    FROM TABLE (SVB_NETTING.build_netting_list  
    (
    iNETTINGNUMBER IN NUMBER,
    dDATENETTING IN DATE,
    sUSERCREATE IN VARCHAR2

    ))RETURN RESULT_ERROR_NT


    это, простите, чушь
    учите синтаксис
  • Медвежонок Пятачок © (16.12.08 12:48) [2]
    отчего же сразу чушь. эта оракул
  • Кщд (16.12.08 12:52) [3]
    >Медвежонок Пятачок ©   (16.12.08 12:48) [2]
    >отчего же сразу чушь. эта оракул
    настаиваете?)
  • ANB (16.12.08 12:52) [4]

    > отчего же сразу чушь. эта оракул

    Потому и чушь, что оракл.

    Автор :
    1. У тебя в девелопере этот запрос выполняется ?
    2. Если уж хочешь вернуть набор данных, то надо делать Open.
  • Медвежонок Пятачок © (16.12.08 13:05) [5]
    я не пробовал, только визуально разбирал.
    автор просто применяет псевдофункцию тэйбл к коллекции.
  • nnnicky (16.12.08 13:09) [6]
    Это функция из пакета Oracle и она прекрасно работает.
  • Кщд (16.12.08 13:17) [7]
    >nnnicky   (16.12.08 13:09) [6]
    1. не указана версия oracle
    2. не указан тип значения, возвращаемого ф-цией
    3. приведенный Вами синтаксис sql-запроса не существует в природе

    >Медвежонок Пятачок ©   (16.12.08 13:05) [5]
    >автор просто применяет псевдофункцию тэйбл к коллекции.
    sql-level type, pipelined function?
    и это только если поверить в Ваше допущение, что эта ф-ция(если это, действительно, ф-ция:)) возвращает не, например, xmltype)
  • nnnicky (16.12.08 13:17) [8]
    так как же мне выцепить RETURN RESULT_ERROR_NT?
  • nnnicky (16.12.08 13:20) [9]

    > 3. приведенный Вами синтаксис sql-запроса не существует
    > в природе


    Но как-то странным образом прекрасно работает
  • Кщд (16.12.08 13:20) [10]
    >nnnicky   (16.12.08 13:17) [8]
    озвучьте, пожалуйста:
    Кщд   (16.12.08 13:17) [7]
    + тип RETURN RESULT_ERROR_NT
    + компоненты доступа
  • Кщд (16.12.08 13:21) [11]
    >nnnicky   (16.12.08 13:20) [9]
    >Но как-то странным образом прекрасно работает
    в sqlplus работает?)
  • nnnicky (16.12.08 13:24) [12]

    > (если это, действительно, ф-ция:))


    FUNCTION build_banknetting_list  
    (
     iNETTINGNUMBER IN NUMBER,
     dDATENETTING IN DATE,
     sUSERCREATE IN VARCHAR2
     
    ) RETURN RESULT_ERROR_NT
    Нет. вот функция.))  А выше всего лишь способ ее  вызова
  • Кщд (16.12.08 13:28) [13]
    >nnnicky   (16.12.08 13:24) [12]
    >Нет. вот функция.))  А выше всего лишь способ ее  вызова
    ну, дело Ваше)
    успехов
  • nnnicky (16.12.08 13:44) [14]
    1. Oracle 9i
    2. возвращает таблицу (RETURN RESULT_ERROR_NT -  тип)
    3. компоненты OraQuery oraDataSource
  • Кщд (16.12.08 13:54) [15]
    >nnnicky   (16.12.08 13:44) [14]
    >1. Oracle 9i
    уже легче

    >2. возвращает таблицу (RETURN RESULT_ERROR_NT -  тип)
    дефиницию типа привести не в состоянии?

    >3. компоненты OraQuery oraDataSource
    вероятно, это ODAC?
  • nnnicky (16.12.08 14:54) [16]
    2. TYPE  RESULT_ERROR_T AS OBJECT(
     CODE         NUMBER(5,0),
     DESCRIPTOIN  VARCHAR2(255),
     PARAM1       VARCHAR2(255),  
     PARAM2       VARCHAR2(255),  
     PARAM3       VARCHAR2(255),  
     CONSTRUCTOR FUNCTION RESULT_ERROR_T RETURN SELF AS RESULT
    );

    3. ODAC
  • Медвежонок Пятачок © (16.12.08 15:27) [17]
    опять по памяти нет под рукой сервера.

    нужно тритить объект к типу и затем уже обращаться к атрибутам
  • ANB (16.12.08 17:17) [18]

    > Нет. вот функция.))  А выше всего лишь способ ее  вызова

    Смущает меня такой способ вызова. И вряд ли он и из пакета работать будет.
    Функция даже не пипелайновая, т.е. вертает просто рекорд.
    Из клиента такую вызвать весьма непросто.
    По любому как минимум безымянный блок нужен.
  • Petr V. Abramov © (16.12.08 19:50) [19]
    SELECT *
    FROM TABLE (SVB_NETTING.build_netting_list  
    (
    :i ,
    :d ,
    :s
    ))

    должно на ура сработать
 
Конференция "Базы" » Oracle [D7]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]