![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вызывать хранимые функции Oracle через ADO [D5, Oracle]
alex_R © (2002-10-15 15:27:00)Народ, подскажите, pls. Весь измучился. Решил проект перевести c BDE на ADO. В результате не могу вызвать не одной хранимой функции Oracle....
Как только не извращался, и дравера менял (ODBC и OLE DB)и пачи ставил. Неужели нельзя вызвать хранимую процедуру Oracle из TADOStoredProc?
Самый последний путь это написать вызов процедуры в TADOQuery
типаselect testfunct(1, "Y", 2) from dual.
Но это уже полный изврат. Лучше обратно в BDE....
Alex_R (2002-10-16 19:54:00) [1]2 roottim
Thanks в следующий раз наверно так и сделаю
Вообще-то проект будет работать через OLE DB это достаточно быстро. ODBC пользуется только в дизайн тайм чтобы правильно добавлять параметры хранимых функций. Именно с функциями оракла и были связаны все проблемы.
Вообще, как выяснилось Oraclовские ODBC и OLE DB драйвера кривоваты.
roottim (2002-10-16 08:45:00) [2]мда! хороший обмен!
BDE vs ODBC
а вообще совет.. установи ODAC и смигрируй компоненты с БДЕ с помощью визарда..
останется минимально подкорректировать проект
Alex_R (2002-10-15 19:27:00) [3]2Sergeyy
Спасибо конечно, но ты бы вопрос почитал повнимательней
После очередной скачки самых новых оракловских ODBC драйверов все зажило.:))
Sergeyy (2002-10-15 18:06:00) [4]А у тебя только с хранимыми процедурами проблемы? То есть таблички, вьюшки ты видишь через ADO?
Если так, то с хранимыми процедурами тоже не должно быть никаких проблем. На это уйдет пара минут. Кидаешь ADOConnection, настраиваешь. Потом ADOStoredProc. Только здесь напиши сначала в свойствах имя процедуры ("ProcedureName") вручную, а потом уже заполняй поле "Connection", а то замучаешься ждать, пока она из словаря все твои процедуры прочитает. Можно вызвать процедуру и из пакета через обычную точечную нотацию. А вот функцию я бы рекомендовал вызывать в ADODataSet или ADOQuery через "select MyFun(MyArgs) from dual".
И еще - подумай об использовании Direct Oracle Access. Очень приятная штука. Хотя иногда ADO всё же лучше.