Форум: "Базы";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизВызов хранимой процедуры в ODAC Найти похожие ветки
← →
lightix (2004-05-27 10:35) [0]Имеется в Oracle 8.1.7 хранимая процедура с параметрами, пытаюсь ее вызвать используя TOraStoredProc, указываю StoredProcName = kt.GET_FREE_TABN , после чего в свойствах автоматически появляются ее параметры и текст SQL для вызова
[code]
begin
kt.GET_FREE_TABN(:DIAP, :KZ, :CEX, :NEW_TABN);
end;
[/code]
затем в программе пытаюсь передать в нее параметры и выполнить ее
[code]
StoredProc1->Params->ParamByName("DIAP")->Value=0;
StoredProc1->Params->ParamByName("KZ")->Value=P_KZ->KeyValue;
StoredProc1->Params->ParamByName("CEX")->Value=P_CEX->KeyValue;
StoredProc1->ExecProc();
[/code]
При выполнении данного кода на первой же строке вылетает ошибка "Параметр DIAP не найден", хотя если посмотреть StoredProc1->Params - то там все в порядке, все параметры на месте ...
Что я делаю неправильно?
PS Эта же процедура с тем же самым кодом для вызова абсолютно прекрасно функционирует с компонентами NCOCI8 TOCIStoredProc без какого либо шаманства - указал имя процедуры и все.
← →
lightix (2004-05-27 11:43) [1]Народ, ну что никто не юзает этот ODAC и хранимые процедуры?
← →
Sandman25+1 (2004-05-27 11:46) [2]Попробуйте перед обращением посмотреть ParamCount.
Если все нормально, попробуйте посмотреть Params[0].Name.
← →
Курдль © (2004-05-27 11:57) [3]Не пользовал ODAC, но DAO требует либо установки свойств параметров в Variables-редакторе в design-time, либо явного указания типа переменной
declareVariable(имя,тип)
А у ODAC нет режима DEBUG, как у DAO (когда конечный текст запроса с заполненными переменными перед отправкой на сервак показывается во всплывающем окошке?)
← →
Курдль © (2004-05-27 11:58) [4]Очепятка: DAO = DOA.
← →
lightix (2004-05-27 12:00) [5]Опа, заработало ParamByName (причем не менял ничего) ...
Но теперь новая беда - при попытке выполнить егоStoredProc1->ExecProc();
Вылетает ошибка "ORA-06550": line2,column 6: PLS-00302: component "GET_FREE_TABN" must be declared
ORA-06550 : line2, column 3
PL/SQL: Statement ignored
Причем повторюсь, процедура рабочая абсолютно, и работает на той же форме в том же приложении если вызывать с помощью OCIStoredProc ....
← →
slgeo © (2004-05-27 12:04) [6]Попробуй нажать кнопку Execute в редакторе StoredProc
← →
Курдль © (2004-05-27 12:08) [7]А чего тебе сдалось
...StoredProc
?
Вроде никаких out-параметров не принимаешь - так пользуй...Query.Execute
← →
lightix (2004-05-27 12:49) [8]в том то и дело что принимаю параметры ...
← →
Val © (2004-05-27 16:53) [9]то есть блок
begin
kt.GET_FREE_TABN(<param1>, <param2>, <param3>, <param4>);
end;
работает, если выполнять его в навигаторе, плюсе, и т.д?
kt - имя пакета? есть ли объявление процедуры в интерфейсной секции пакета?
← →
Курдль © (2004-05-27 17:28) [10]
> работает, если выполнять его в навигаторе, плюсе, и т.д?
> kt - имя пакета? есть ли объявление процедуры в интерфейсной
> секции пакета?
"Тело без объявления"? Она бы не компилилась Ораклом.
← →
Val © (2004-05-27 19:23) [11]вы о чем, уважаемый?
← →
lightix (2004-06-01 13:28) [12]kt - имя схемы.
процедура рабочая, без проблем работает с компонентами NCOCI и в плюсе уже год.
проблема именно в ODAC"e
← →
Val © (2004-06-01 13:41) [13]пробовали не указывать имя схемы?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.026 c