Форум: "Базы";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
ВнизОрокол 8.1.7 + Дельфи 5, хранимые процедуры в пакетах Найти похожие ветки
← →
danilka (2002-10-21 08:36) [0]в моей схеме есть пакет IAS, в нем лежат 2 процедуры MOVEUP с одним параметром и CLIENTSORT без параметров.
первая у меня пускается таким образом:
sp:=TStoredProc.Create(nil);
sp.DatabaseName:=sbts.fdb;
sp.StoredProcName:="IAS.MOVEUP";
select_id:=q_client.fieldbyname("clientid").asinteger;
sp.Params.CreateParam(ftInteger,"client_",ptInput).asinteger:=select_id;
try
sp.ExecProc;
except raise
end;
sp.free;
вторая вот-таким:
sp:=TStoredProc.Create(nil);
sp.DatabaseName:=sbts.fdb;
sp.StoredProcName:="IAS.CLIENTSORT";
try
sp.ExecProc;
except raise
end;
sp.free;
первая проходит ровно, вторая ругается на орокол-библиотеку oraclient8.
ставлю в настройках BDE библиотеку от седьмого оракла: sqlora32.dll - процедуры работают без проблем, но с этой библиотекой не работают блоб-поля. :(((
причем, когда-то давно, у меня уже были проблемы с хранимыми процедурами в пакетах, когда я эти процедуры вешал на форму, как только я стал их создавать динамически проблемы прекратились, а сейчас опять что-то глючит. :((
Что делать?
← →
Shadi (2002-10-21 09:01) [1]Можно попробовать в BDE поставить вместо oraclient8 OCI.DLL..
← →
danilka (2002-10-21 09:20) [2]в VENDOR INIT?
там OCI.DLL и стоит.
я его оставлял и тогда когда менял в DLL32 SQLORA8.DLL на SQLORA32.DLL.
← →
danilka (2002-10-21 09:22) [3]Попробовал, кстати, поставить ORACLIENT8 вместо OCI, спотыкается на том-же месте. Похоже все-таки это проблема SQLORA8. Кто-нибудь знает как ее обойти?
← →
AlteFriz (2002-10-21 11:09) [4]Привет! Я с BDE не работаю а использую DOA и вызываю процедуры из пакетов с любыми параметрами и проблем не набдлюдаю. Попробуй если можешь использовать DOA.
Удачи.
← →
danilka (2002-10-21 12:01) [5]К сожалению не подойдет, по-крайней мере не в ближайшем будущем. Слишком много в нашей фирме проектов в том-числе и долгосрочных, которые работают несколько лет. Все работает под BDE, разнобоя быть не должно, а переводить уже работающие вещи, в которых исходники весят по 5 мегабайт на что-то другое - самоубийство. Наверняка где-нибудь стрельнет. у заказчика.
← →
Shadi (2002-10-21 13:41) [6]Может еще и сама BDE глюкать. Я пробовал ставить BDE от третей Delphi и потом накатывал update 5. Оказалось в этом есть свои "прелести":((( Лучше сразу от 6 Delphi BDE!!!
Еще может быть из-за самого клиента оракла! У меня server стоит 8.1.7, а на клиентах стоит 8.0.5. И здесь тоже могут быть свои подводные камни...
← →
Erik (2002-10-21 17:07) [7]Можно поробовать NCOCI8 Library, V 1.0.2 http://www.da-soft.com
у меня стоит. Очень похоже на BDE есть все свойства. Плюс мастер для замены BDE на NCOCI8.
← →
danilka (2002-10-22 10:05) [8]Это глюк БДЕ, но здесь есть и вина оракла. Пускаешь вот-такой запрос:
SELECT ARGUMENT_NAME, POSITION, DATA_TYPE, IN_OUT,
DATA_LENGTH, DATA_SCALE FROM ALL_ARGUMENTS
WHERE OBJECT_NAME = "CLIENTSORT" AND PACKAGE_NAME = "IAS"
По-идее это процедура без параметров, следовательно в результате запроса должно быть ноль строк, а он возвращает одну, с пустым ARGUMENT_NAME, POSITION=1 и IN_OUT="IN".
Видимо БДЕ на этом и обламывается - раз есть параметр IN, надо в него что-то передать.
Думаю, в огромном большинстве случаев используются процедуры или функции с параметрами, поэтому такой глюк мало у кого возникает. Вобщем, я просто добавил 1 параметр, который в самой процедуре нигде не использую - теперь все нормально пашет.
А на счет БДЕ от 6 дельфей, он : 6-х и в 7-х дельфях такой-же как в 5-м, версии 5.1, Клиент и сервер один и тот-же: 8.1.7
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c