Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при подключении к базе из сервиса, Service + ADO + MySQL 
V
    Опции темы
drkot
Дата 13.1.2011, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



При старте сервиса происходит подключение к базе данных MySQL.

Исключение возникает на этой строке в эвенте TService.OnStart:
Код

ADOConnection1.Connected:=true;


В виде десктопного приложения код отрабатывает нормально.

Думаю что бок в ADO в работе из под сервиса. 

Собственно вопрос как это побороть?

Буду признателен за конструктивные ответы.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Akella
Дата 13.1.2011, 10:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Может нужно службе дать разрешение на взаимодействие с рабочим столом?
user posted image
PM MAIL   Вверх
drkot
Дата 13.1.2011, 15:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(Akella @  13.1.2011,  10:10 Найти цитируемый пост)
Может нужно службе дать разрешение на взаимодействие с рабочим столом?

1. Зачем? Подключение к базе через порт.
2. Данная функция в висте и семерке не имеет никакого смысла, тк служба все равно остается на своей станции/столе.

Думаю что не происходит инициализация чего-то того что автоматически инициализируется для десктопных приложений... вот только чего???

Еще как вариант это контекст выполнения... возможно в контексте TService.OnStart нельзя вызывать функции ADO... но тогда где их вызывать?

Это сообщение отредактировал(а) drkot - 13.1.2011, 15:40


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
drkot
Дата 14.1.2011, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Ммммда..... Похоже никто не сталкивался с подобными вещами... а жаль...


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Bose
Дата 3.2.2011, 19:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



У меня была похожая проблема, вызвана была тем, что мой сервис стартовал раньше чем сервисы, с помощью которых осуществлялось подключение. Лечилось указанием зависимостей от нужных сервисов.
PM MAIL WWW Skype   Вверх
drkot
Дата 5.2.2011, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(Bose @  3.2.2011,  19:03 Найти цитируемый пост)
сервис стартовал раньше чем сервисы, с помощью которых осуществлялось подключение

Возможно, но проблема сохраняется и при ручном старте, в это время уже все запущено.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
pseud
Дата 6.2.2011, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Akella @  13.1.2011,  10:10 Найти цитируемый пост)
Может нужно службе дать разрешение на взаимодействие с рабочим столом?

Цитата(drkot @  13.1.2011,  15:32 Найти цитируемый пост)
1. Зачем? Подключение к базе через порт.

Но ведь проверить можно. Ничего не отвалится. 
Думаю, что при попытке коннекта пытается вывалиться окно запроса имени/пароля.
Даже если они вбиты умалчиваемые, окно возможно все-равно пытается проинициализироваться.

Добавлено через 1 минуту и 41 секунду
Цитата(drkot @  13.1.2011,  03:10 Найти цитируемый пост)
Исключение возникает на этой строке в эвенте TService.OnStart:

какое исключение?

Добавлено через 2 минуты и 59 секунд
Цитата(drkot @  13.1.2011,  15:32 Найти цитируемый пост)
2. Данная функция в висте и семерке не имеет никакого смысла, тк служба все равно остается на своей станции/столе.

а в ХРшке проверял свой сервис?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
drkot
Дата 15.3.2011, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(pseud @  6.2.2011,  22:38 Найти цитируемый пост)
Но ведь проверить можно. Ничего не отвалится. Думаю, что при попытке коннекта пытается вывалиться окно запроса имени/пароля.Даже если они вбиты умалчиваемые, окно возможно все-равно пытается проинициализироваться.


Мдддааа... Почему на более ли менее серьезный вопрос предлагаются ответы уровня чайника?

Цитата(pseud @  6.2.2011,  22:38 Найти цитируемый пост)
какое исключение?

А Вы попробуйте TADOConnection.Open сделать в сервисе и увидите. А может у Вас все пройдет отлично и тогда я стерплю любую критику в свою сторону ;)


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
pseud
Дата 16.3.2011, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



drkot, тема стартовала 13.01.2011. 
15.03.2011 - остается проблема или она решена и вы можете выложить лечение для жаждущих?

Цитата(drkot @  15.3.2011,  18:19 Найти цитируемый пост)
А Вы попробуйте TADOConnection.Open сделать в сервисе и увидите

Сервисы писал. С TADOConnection никогда не работал  smile . Очень и очень влом начинать smile.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
drkot
Дата 17.3.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Проблема решена в лоб, отказом от ADO, что тянет за собой неудобства (в частности при многопоточной работе)

Поэтому проблема ADO + Service остается.
Цитата(pseud @  6.2.2011,  22:38 Найти цитируемый пост)
какое исключение?

наверно не совсем корректен был... реально не происходит старт сервиса (если не ошибаюсь).
возможно таймаут выходит.
Само по себе соединение с базой не должно превышать таймаут запуска сервиса.



--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
drkot
Дата 20.4.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Проблема решена....
Собственно все просто нужно только понять....
Итог: не стоит пользоваться мастером настройки ADOConnection для подключения ODBC драйвера если процесс планируется запускать под системной учетной записью. Как-то так...
Заполняйте строку подключения вручную и будет счастье.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.