![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервис и ADO [D7, Access]
DarekS © (2007-06-18 15:40:00)Сервис (Service Application) использует для доступа к БД Access компоненты ADO. Во время разработки компоненты корректно подключаются к базе. По сле запуска службы не возможно подключится путем установки Active:=true. Свойство всегда остается false. Сообщений об ошибке не поступает.
BDS 2006. Есть предположения?
П.С. Опыт не большой, не пинайте больно..
sniknik (2007-06-19 12:06:00) [21]> Никакой закладки "User-DNS" не встречал, база вяляется на том же компе..
подключение (строка) через ODBC, и хочеш сказать не видел где DSN создавал? юзеровский или системный.
> При чем COM-подсистема ? Я об этом впервые слышу :-)
самое время просветится.
а еще, раз спрашиваешь, перестань считать что знаеш что нужно для ответа. не "выкобенивался" бы, давно бы ктонибудь подсказал. нормально, кодом, а не "описательно" в ответ на "описательный" вопрос.
> я стал лаконичен, правда?
от тебя как раз требуется совсем другое. раз нужно тебе, то ты должен предоставлять ВСЮ необходимую инфу о том что там у тебя происходит/сделано, а если не знаеш что необходимо то просто ВСЮ.
DarekS (2007-06-19 11:57:00) [22]И кто мне расскажет про COM - подсистему..?
sniknik
я стал лаконичен, правда?
DarekS (2007-06-19 11:55:00) [23]Плохиш
Под одним и тем же пользователем создаю источник данных, запускаю обычные приложения и сервисы. Приложения через ADO работают c БД Access - а сервисы с той же строкой подключения, нет! Никакой закладки "User-DNS" не встречал, база вяляется на том же компе.. Проверяю подключение ,все ок! Или сервись надо пускать не "просто", а от какого то имени? Тогда, каким образом?
При чем COM-подсистема ? Я об этом впервые слышу :-)
sniknik (2007-06-19 11:35:00) [24]> Все такие вууумные.. :-))
> Какой код приводить, если там всего 3 строчки?
двух не хватает... инициализация COM, +разинициализвция. т.к. сервис это всеже не основной поток приложения.
+ конечно, нехватает еще обработки ошибок, которых как говоришь у тебя нет...
и вот это ShowMessage... лишнее т.к. ... см обьяснение [3].
> ТОЧНО ТОТ САМЫЙ КОД в обычном приложении работает безупречно!
вот я и думаю почему катер по городу не едет? ведь он ТОЧНО В ПОРЯДКЕ т.к. по морю идет в легкую...
> проверю еще на Delphi6...
не стоит не в дельфе ошибка, будет тоже самое.
> П.С. Надеялся на опыт тех кто работал с ADO из-под сервиса BDS2006...
а по вопросу и остальному (до [6] где есть хоть чтото) кажется что хочеш поговорить... иначе к чему "описательные" обьяснения вместо пары строк кода, что и описывает лучше и место кривотолкам не оставляет...
Сергей М. (2007-06-19 11:26:00) [25]
> DarekS (19.06.07 11:11) [7]
Явную инициализацию COM-подсистемы за тебя кто будет делать - Пушкин ?
Плохиш (2007-06-19 11:21:00) [26]
> Data Source= SendMail_SQL
А это создано на закладке "User-DNS"... Чего ж ты хочешь, нету у пользователя, под которым запускается сервер, этого источника данных.
DarekS (2007-06-19 11:11:00) [27]После попытки
ADODataSet1.Active:=true;
сервис замирает..
DarekS (2007-06-19 11:09:00) [28]Все такие вууумные.. :-))
Какой код приводить, если там всего 3 строчки?
ADODataSet1.ConnectionString:='Provider=MSDASQL.1;Password="";Persist Security Info=True;Data Source=SendMail_SQL';
ADODataSet1.CommandText:='select ID,data,flag from TB1';
ShowMessage('Active- '+BoolToStr(ADODataSet1.Active));
ADODataSet1.Active:=true;
ShowMessage('Active- '+BoolToStr(ADODataSet1.Active));
Для невнимательых:
ТОЧНО ТОТ САМЫЙ КОД в обычном приложении работает безупречно!
Глубокоуважаемый sniknik , если я ошибся в строке подключения (пароль или еще чего), то почему обычное приложение с такой же строкой подключения работает без проблем? Можете мне, скудоумному, объяснить этот феномен. У меня загвоздка не в подключении через ADO к базе Access, а в том ,что способ применяемый в обычном приложении не сработал в сервисе! Возможно вина самого BDS2006, проверю еще на Delphi6...
Пасибо всем за активное участье :-))
П.С. Надеялся на опыт тех кто работал с ADO из-под сервиса BDS2006...
Германн (2007-06-19 00:28:00) [29]
> Вопрос в этой ветке, т.к. у новичков врядли смогли бы мне
> помочь,
В корне неверное представление о направленности коференции "Начинающие". Отвечают во всех конференциях одни и те же люди.
Anatoly Podgoretsky (2007-06-18 20:33:00) [30]Ошибка сугубо в 17 строке.
sniknik (2007-06-18 20:11:00) [31]> пароль-логин не запрашивает.
было бы надежнее привести параметры показывающие что не запрашивает, чем словестные уверения. (в которые хоть "мамой клянусь все правильно сделал, а оно не работает" не поверю)
> При попытке пуска службы с активным соединением
этого нельзя делать не только в сервисах но и в простом приложении, во избежание различных "непонятных" эксцессов.
> а вопрос сугубо "базовый"
вот это врядли... судя по приведенному ADOTable, вопрос сугубо в "базовом профанстве".
DarekS (2007-06-18 17:20:00) [32]пароль-логин не запрашивает.
Во время разработки приложения проверяю соединение с базой. Вывожу содержимое таблицы гридом (для зрительной проверки). Все пучком. При пуске службы и последующей попытке активации свойство остается неактивным. При попытке пуска службы с активным соединением компоненты (ADOQuery, ADODataSet, ADOTable.Active:=true) ругается на отсутствие источника данных и драйвера по умолчанию. Хотя минутой раньше прекрасно отображал базу в гриде.. То же самое в обычном приложении работает без проблем.
Вопрос в этой ветке, т.к. у новичков врядли смогли бы мне помочь, а вопрос сугубо "базовый" , с другими компонентами сервис работает отлично..
sniknik (2007-06-18 15:52:00) [33]> Сообщений об ошибке не поступает.
да ну? может ты их просто не видиш? т.к. службе запрещено взаимодействие с рабочим столом. пиши в лог.
скорее всего (частый глюк) забыл у коннекта поставить не запрашивать логин/пароль вот он и запрашивает... там где не видно. "до победного".
> П.С. Опыт не большой, не пинайте больно..
тогда почему сдесь, а не в начинающих?