Форум: "Базы";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизПроблема вызова функции из сервиса соединения с БД из DLL Найти похожие ветки
← →
gunner (2002-12-06 11:24) [0]Мастера, есть очень интересная ситуация !
Я из сервиса цепляю DLL в которой живут функции для работы с БД типа DB2. Так вот линковка всех функций проходит на ура, а вот когда дело доходит непосредственно до их выполнения, то сервис вываливается с EXCEPTION !
Тоже самое проделываю не из сервиса, а в простом приложении, всё работает на ура !
Так вопрос знатокам, в чём же тут дело ??
← →
passm (2002-12-06 11:31) [1]gunner (06.12.02 11:24)> Что пишет?
← →
sniknik (2002-12-06 11:35) [2]ошибка в 17 строке. :о)
серьезно не понятно, хочеш пример вышлю? правда с BDE но у тебя проблема вроде не с базой а с Dll.
← →
sniknik (2002-12-06 11:36) [3]Сорру не обратил внимания, но D6 может есть.
← →
gunner (2002-12-06 11:36) [4]При ошибке ??
я не могу выяснить этого... я знаю что вываливается при EXCEPTION после этого я даже не могу сделать GetLastError так как сервис закрывается !
← →
gunner (2002-12-06 11:42) [5]> sniknik ©
не совсем понял что ты имел ввиду ?
← →
sniknik (2002-12-06 11:48) [6]gunner (06.12.02 11:42)
да я сам не понял :). спросонья наверное, не просек что вопрос про сервис, и D7 (в нем BDE вроде нет).
так что не обращая внимания.
пример просто вызов dll с формой и гридом из програмки в которой таблица обьявлена.
← →
gunner (2002-12-06 12:34) [7]> sniknik ©
Значит не в курсе в чём у меня проблема ?
← →
sniknik (2002-12-06 12:50) [8]нет. :о((
я и сервисы то не писал, пробовал только стандартный дельфийский Service Application (есть задумка кое чего туда перекинуть), но вот dll оттуда вызывать пробовать не приходилось.
кстати как связывание идет, линковка? сам ее загружаеш -> LoadLibrary? если нет попробуй простора больше.
← →
gunner (2002-12-06 13:27) [9]> sniknik
да именно LoadLibrary, но дело тут кажется не в линковке а в привелегиях каких то ! Я так думаю...
← →
Daf (2002-12-06 13:48) [10]Удалено модератором
← →
passm (2002-12-06 14:07) [11]gunner (06.12.02 13:27)> Кстати, как осуществляется коннект к DB2? Признаюсь, делал это исключительно через BDE и сервесы не писал, но приходилось делать DCOM сервер.
Есть ini файл, где прописаны TDatabase.Params. Там указаны DB2 DSN DSN, USER NAME, PASSWORD...
← →
gunner (2002-12-06 17:43) [12]По существу господа, по существу ! :)
← →
gunner (2002-12-06 17:44) [13]> passm ©
Коннект идёт через CLI interface
← →
sniknik (2002-12-07 02:21) [14]и снова здраствуйте! Daf (06.12.02 13:48) спасибо, хотя здесь вроде не в месту.
gunner получилось чтонибудь? в смысле заработало? у меня да. попробовал загнать вызовы dll в стандартный сервис, и никаких особых проблем не возникло. я просто перенес вызовы из примера, см. выше, ну и вместо BDE сделал на ADO, коннект создаю в сервисе, открываю его в Dll в ней же создаю AdoCommand (просто так для перекрестности). В общем все работает, если у тебя еще не получилось пиши. Только пример получился на ADO + Jet (Access база). С DB2 я тебе не помошник.
← →
gunner (2002-12-09 08:40) [15]> sniknik ©
У меня проблема не в том что я немогу функции из ДЛЛ дёргать...
пробле заключается в том что я немогу вызвать функцию которая делает Connect к DB2, если взять простую библиотеку которая работает сама в себе, то проблем с вызовом никаких !
← →
sniknik (2002-12-09 10:43) [16]с коннектом к Access и MSSQL проблем нет (в смысле у меня получилось с первого раза), что из dll в программе что из dll в сервисе. что я и хотел сказать. не думаю что для DB2 какието исключения, раз ты можеш из программы вызывать то и из сервиса должно. я так думаю.
если так то в сервисе ты чегото не учел.
← →
gunner (2002-12-09 13:33) [17]> sniknik ©
Я тоже так думал, однако похоже что это не так.....
Если бы я конект дела с использованием како го нибудь БДЕ то наверное проблем бы небыло....
но там конект делается с использованием специальных функций которые работают напрямую с базой через свой интерфес.
← →
sniknik (2002-12-09 13:56) [18]давай я тебе всеже зашлю примерчик? сравниш хотя бы. с ADO - Jet разберешся думаю, пример простой 1 вызов рабочей функции (что в базу ложит), а вот если подобное на DB2 повториш и работать не будет .... :о((
p.s. послал. и не упирайся. :о)).
← →
gunner (2002-12-09 14:12) [19]> sniknik ©
Получил, и не упираюсь ! :)
← →
asmith (2002-12-09 16:27) [20]Попробуй пописать например в Application Event Log подробный протокол подозрительного места в сервисе - после каждого вызова - код возврата в лог. Нужно точно и четко локализовать место проишествия.
← →
sniknik (2002-12-09 17:14) [21]asmith (09.12.02 16:27)
попробуй более внимательно прочитать ветку :-). подозрительные места -> gunner (06.12.02 11:36), место известно.
← →
asmith (2002-12-09 17:41) [22]sniknik (09.12.02 17:14)
Попробую. "я знаю что вываливается при EXCEPTION после этого я даже не могу сделать GetLastError". А что присходит до этого?
← →
sniknik (2002-12-09 18:09) [23]не знаю даже не догадываюсь. но думаю проверил если говорит что знает на каком вызове вылетает?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c