Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов хранимой процедуры Oracle из Delphi [D7, Oracle]


EugenePichugin ©   (2004-02-03 18:11:00) 

Приветствую всех
есть на сервере оракловом хранимка (функция)
нужно ее вызвать и получить значение
подключаюсь через ADO
использую ADOStoredProc
вручную добавляю параметры в дезайн тайм
затем присваиваю входному параметру значение и пытаюсь вызвать

ADOStoredProc1.Parameters.ParamByName("P_LIST").Value := "|ID~112|DOC_TYPE~01|VALUE_DATE~25-06-2003|AMOUNT~53100|CCY~810|REM_MFO~044585779|REM_ACC_NO~30101810400000000779|";
ADOStoredProc1.Prepared := True;
ADOStoredProc1.ExecProc;


получается ошибка
пишет что параметры определены не верно

хотя вроде бы все определяю правильно

вот что написано в определении функции

(RESULT) NUMBER
P_LIST VARCHAR2 IN
P_VB_NO VARCHAR2 OUT
P_ERROR_MESSAGE VARCHAR2 OUT

и параметры так же обзываю (правда не уверен как назвать RESULT со скобками или без)

и типы им присваиваю
и дирекшн
но...

ничего не работает
пишет параметры определены неверно

кто знает толковое описания вызова оракловых хранимок , мож в сети где описано толково??

или как программно посмотреть имена и типы параметров???

Спасибо.


Vlad   (2004-02-04 10:48:00) [1]

можно вместо TStoredProcedure использовать TQuery (или ADOQuery)
тогда в SQL запросе будет сдеующее:

begin
:Res:=MyStoredFunctiuon(.....);
end;
Выполняешь запрос и считываешь значение переменной Res


Reindeer Moss Eater   (2004-02-04 10:30:00) [2]

А кто запрещает написать процедуру-обертку вокруг этой функции?


EugenePichugin   (2004-02-04 10:16:00) [3]

Я бы с радостью.
Но база не моя.
И я жестко ограничен интерфейсом :(

а что, дело именно в резалте?


Reindeer Moss Eater   (2004-02-04 08:41:00) [4]

Преврати функцию в процедуру, а result сделай out параметром - тебе говорят.


EugenePichugin   (2004-02-03 19:04:00) [5]

Не понял?


Vlad   (2004-02-03 18:55:00) [6]

procedure MyProcedure(P_LIST IN VARCHAR2, P_VB_NO OUT VARCHAR2, P_ERROR_MESSAGE OUT VARCHAR2, RESULT OUT NUMBER) IS
BEGIN
.....
END;


Наверх

Титульная страница Поиск, карта сайта Написать письмо