Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сервис и ADO [D7, Access]


Страницы:   1 2

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]

> Сообщений об ошибке не поступает.
да ну? может ты их просто не видиш? т.к. службе запрещено взаимодействие с рабочим столом. пиши в лог.

скорее всего (частый глюк) забыл у коннекта поставить не запрашивать логин/пароль вот он и запрашивает... там где не видно. "до победного".

> П.С. Опыт не большой, не пинайте больно..
тогда почему сдесь, а не в начинающих?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо