Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой...
Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию....
При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение...
Народ подскажите кто знает....
Заранее благодарен.
Здравствуйте, <Аноним>, Вы писали:
А>Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой... А>Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию.... А>При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение...
А в чём заключается неработа???
... << RSDN@Home 1.1.3 beta 2 >>
Не переходите улицу на тот свет..
Re[2]: Работа с базой данных из сервиса Win32
От:
Аноним
Дата:
27.04.04 16:22
Оценка:
Здравствуйте, agos, Вы писали:
A>Здравствуйте, <Аноним>, Вы писали:
А>>Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой... А>>Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию.... А>>При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение... A>А в чём заключается неработа???
В обработчике по таймеру не происходит записи в базу...
Здравствуйте, <Аноним>, Вы писали:
А>Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой... А>Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию.... А>При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение...
есть предположение. когда запускаешь приложение сервисом, то оно запускается от имени localsystem, а не под пользовательским именем, имеющим доступ к БД. вот ms sql и не пускает.
--
Каратаев Владимир
... << RSDN@Home 1.1.0 stable >>
Re[2]: Работа с базой данных из сервиса Win32
От:
Аноним
Дата:
28.04.04 06:41
Оценка:
Здравствуйте, kvl_mikki, Вы писали:
_>Здравствуйте, <Аноним>, Вы писали:
А>>Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой... А>>Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию.... А>>При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение...
_>есть предположение. когда запускаешь приложение сервисом, то оно запускается от имени localsystem, а не под пользовательским именем, имеющим доступ к БД. вот ms sql и не пускает.
_>-- _>Каратаев Владимир
Я перепробовал всех пользователей....к сожалению ADOConnection1.Connected возвращает false...
Может есть какая-то специфика при работе с консольными приложениями (ведь Сервис — консольное приложение?)...те как-то особенным образом инициализировать соединение ?
Я просто кидаю компоненты в модуль...
> A>А в чём заключается неработа??? > > В обработчике по таймеру не происходит записи в базу...
Ошибки какие? Или что именно означает "не-запись"?
Я например сталкивался с тем, при старте мой сервис просто стартует раньше
чем оживет SQL-сервер (дело было с InterBase, но думаю это не
принципиально).
А>>>Мне нужно было написать простейшее сервисное приложение мониторинга БД и я столкнулся с непонятной проблемой... А>>>Я по таймеру ...скажем каждые пол минуты должен записывать в таблицу MS SQL Server 2000 информацию.... А>>>При написании того же кода в обычном приложении все срабатывает...но в сервисном — нет...причем я не в курсе как дебаггить сервисное приложение...
_>>есть предположение. когда запускаешь приложение сервисом, то оно запускается от имени localsystem, а не под пользовательским именем, имеющим доступ к БД. вот ms sql и не пускает.
_>>-- _>>Каратаев Владимир
А>Я перепробовал всех пользователей....к сожалению ADOConnection1.Connected возвращает false... А>Может есть какая-то специфика при работе с консольными приложениями (ведь Сервис — консольное приложение?)...те как-то особенным образом инициализировать соединение ? А>Я просто кидаю компоненты в модуль...
Я нарвался год назад на точно такие же грабли. выяснил одну очень хорошую вещь — таймер в сервисе не работает. незнаю почему. Поэтому создал поток и внем делаю всю отработку.
А отлаживать сервис нужно по описанию в хелпе — запускаешь сервис ручками и тут же запускаешь дельфи. но что то не очень разгоняется на это дельфя, особенно когда делаешь сервисы с форточками