Итак, ситуация. Я уже упоминал сервис, который пишу с использованием
компонентов ADO. Обнаружил очень интересный факт, которому не могу дать
объяснение. Значит я создаю в событии onStart сервиса объекты ADOQuery и
ADOStoredProc, в OnExecute их использую и в OnStop и OnShutdown удаляю.
Обнаружил такой странный глюк. Когда я делаю первый запрос с помощью ADOQuery
на работе (ОС Win2K) вываливается AV в модуле ntdll.dll. Проход отладчиком
показал, что происходит это во время выполнения одного из методов интерфейса
Command, который вызывается в методе OpenCursor. После этого продолжают
сыпаться AV в модулях ntdll.dll и msado15.dll. При тестировании дома этого же
скомпилированного на работе сервиса никаких ошибок не возникает. Правда и ОС
другая (WinXP). По сему спрашиваю, есть ли возможность пресечь сие безобразие
на Win2k, причём глюк начал появляться только после того, как я добавил в
сервис 2 новых метода, которые вызываю в самом конце OnExecute. Так что они
вряд ли могли что-то попортить, тем более, что на WinXP глюка нет. Версия MSSQL
везде одинаковая 2005 Express. Так что это похоже глюк винды и ADO-OLEDB. С
инициализацией и деинициализацией COM вроде всё нормально. Что с этим можно
сделать?
Желаю Вам всего наилучшего, All.Дмитрий.