Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-1086468327
anpsoft
2004-06-06 00:45
2004.06.27
Кроссворд для delphiстов


1-1086753976
Litr
2004-06-09 08:06
2004.06.27
Chart


1-1086936564
ancara
2004-06-11 10:49
2004.06.27
Как получить R,G,B из clBtnFace?


14-1086847223
BiN
2004-06-10 10:00
2004.06.27
Личный вклад в историю или Кочубей не пройдет!!! :)


14-1086801955
Феликс
2004-06-09 21:25
2004.06.27
Если сократить всё человечество до деревни в 100 жителей,





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский