-
bbcha (26.03.13 21:01) [0]Друзья, нужна номощь.
Есть совершенно обычная оконная программа (TForm). В ней, в частности, с помощью TADOConnection, происходит подключение к базе данных 1С через ole db provider for visual foxpro.
На базе этой программы делаю сервис (TService). В событии OnStart прописываю следующий код:conn1C.ConnectionString := 'Provider=VFPOLEDB.1;Data Source=' + Path_1C + ';Collating Sequence=RUSSIAN;';
conn1C.Open;
.
При запуске сервиса он вылетает с ошибкой: Service failed on start: Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
При этом оконное приложение с точно такой же строкой подключение работает без замечаний. И в design-mode соединение тоже устанавливается без проблем даже в сервисе.
Может кто сталкивался с таким? Помогите пожалуйста. -
знайка (26.03.13 21:04) [1]У вас в сервисе нет нициализации сом-а.
-
bbcha (26.03.13 21:11) [2]Есть. Первой строчкой в событии OnStart идетCoInitialize(nil);
Без нее сервис вылетает с другой ошибкой
Service failed on start: Не был произведен вызов CoInitialize -
bbcha (26.03.13 21:13) [3]На сомом деле в сервисе производится подключение двух TADOConnectionconnST.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + Path_ST + ';Persist Security Info=False';
connST.Open;
conn1C.ConnectionString := 'Provider=VFPOLEDB.1;Data Source=' + Path_1C + ';Collating Sequence=RUSSIAN;';
conn1C.Open;
Так вот, первое подключение проходит, а второе завершает сервис с ошибкой:
Service failed on start: Не удается найти указанный поставщик. Вероятно, он установлен неправильно. -
провайдер может быть установлен для юзера... (как устанавливал? сетапом для всех или регистрировал dll только для текущего?) попробуй запустить сервис от того юзера из под которого устанавливал.
> а второе завершает сервис с ошибкой:
а этот конект в обычной программе без ошибки? -
bbcha (26.03.13 22:21) [5]
> sniknik
Огромное спасибо. Лоханулся именно в этом - установка по умолчанию для конкретного юзера. Переставил провайдер для всех. Сервис заработал.
Вопрос закрыт, всем спасибо!