-
Добрый день!
Есть некая функция, которая вызывается через экшен.
Делаю так: в компонент 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 содержит записи показать в отдельном окне пользователю.
Вопрос простенький наверно, но что-то пока не пойму как сделать.
-
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]
>отчего же сразу чушь. эта оракул
настаиваете?)
-
> отчего же сразу чушь. эта оракул
Потому и чушь, что оракл.
Автор :
1. У тебя в девелопере этот запрос выполняется ?
2. Если уж хочешь вернуть набор данных, то надо делать Open.
-
я не пробовал, только визуально разбирал.
автор просто применяет псевдофункцию тэйбл к коллекции.
-
Это функция из пакета Oracle и она прекрасно работает.
-
>nnnicky (16.12.08 13:09) [6]
1. не указана версия oracle
2. не указан тип значения, возвращаемого ф-цией
3. приведенный Вами синтаксис sql-запроса не существует в природе
>Медвежонок Пятачок © (16.12.08 13:05) [5]
>автор просто применяет псевдофункцию тэйбл к коллекции.
sql-level type, pipelined function?
и это только если поверить в Ваше допущение, что эта ф-ция(если это, действительно, ф-ция:)) возвращает не, например, xmltype)
-
так как же мне выцепить RETURN RESULT_ERROR_NT?
-
> 3. приведенный Вами синтаксис sql-запроса не существует
> в природе
Но как-то странным образом прекрасно работает
-
>nnnicky (16.12.08 13:17) [8]
озвучьте, пожалуйста:
Кщд (16.12.08 13:17) [7]
+ тип RETURN RESULT_ERROR_NT
+ компоненты доступа
-
>nnnicky (16.12.08 13:20) [9]
>Но как-то странным образом прекрасно работает
в sqlplus работает?)
-
> (если это, действительно, ф-ция:))
FUNCTION build_banknetting_list
(
iNETTINGNUMBER IN NUMBER,
dDATENETTING IN DATE,
sUSERCREATE IN VARCHAR2
) RETURN RESULT_ERROR_NT
Нет. вот функция.)) А выше всего лишь способ ее вызова
-
>nnnicky (16.12.08 13:24) [12]
>Нет. вот функция.)) А выше всего лишь способ ее вызова
ну, дело Ваше)
успехов
-
1. Oracle 9i
2. возвращает таблицу (RETURN RESULT_ERROR_NT - тип)
3. компоненты OraQuery oraDataSource
-
>nnnicky (16.12.08 13:44) [14]
>1. Oracle 9i
уже легче
>2. возвращает таблицу (RETURN RESULT_ERROR_NT - тип)
дефиницию типа привести не в состоянии?
>3. компоненты OraQuery oraDataSource
вероятно, это ODAC?
-
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
-
опять по памяти нет под рукой сервера.
нужно тритить объект к типу и затем уже обращаться к атрибутам
-
> Нет. вот функция.)) А выше всего лишь способ ее вызова
Смущает меня такой способ вызова. И вряд ли он и из пакета работать будет.
Функция даже не пипелайновая, т.е. вертает просто рекорд.
Из клиента такую вызвать весьма непросто.
По любому как минимум безымянный блок нужен.
-
SELECT *
FROM TABLE (SVB_NETTING.build_netting_list
(
:i ,
:d ,
:s
))
должно на ура сработать