View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000715 | Database Comparer VCL | General | public | 2014-10-02 15:50 | 2019-12-25 00:11 |
Reporter | shirokov | Assigned To | barry | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | feedback | Resolution | open | ||
Summary | 0000715: Компоненты не работают в Windows service | ||||
Description | При попытке использовать компоненты в сервисе, мешает вызов ShowMessage - он лочит сервис. Как вариант, сделать проверку на наличие обработчика для эвента dbcOnShowMessage. Скорее всего, и ProcessMessages тоже надо как-то уметь выключать. Сейчас обе функции выключаются только для линукса. | ||||
Tags | No tags attached. | ||||
|
Проверку обработчика сделать в принципе можно, но мы же не можем управлять условно включением юнитов в компилируемый проект на этапе исполнения. Или я не так понял. Насколько я помню, если не ошибаюсь, включение Forms или Dialogs лочит сервис. Мы это должны делать на этапе компиляции проекта (если не рассматривать динамически загружаемые bpl/dll). Конечно же сообщения об ошибках терять не стоит. Как альтернатива - можно писать в системный лог вместо ShowMessage. Я в принципе ни разу это не юзал, но думаю хотя бы на уровне Windows API есть соотв. функции, наверняка и врапперы в Delphi, я просто не углублялся в эту тему. Можем например сделать это через условную компиляцию. Определять {$DEFINE SERVICE} например и соотв. дефаултный обработчик ErrMsg направлять в диалоговое окно или в системный лог. |
|
Я пересмотрел - у нас в общем-то проблема эта решалась. Вее вынесено в dbcMsg.pas. Для сервиса этот юнит можно просто заменять своим с нужной реализацией записи ошибок в нужное место. |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-10-02 15:50 | shirokov | New Issue | |
2019-12-24 16:48 | barry | Assigned To | => barry |
2019-12-24 16:48 | barry | Status | new => acknowledged |
2019-12-24 17:00 | barry | Note Added: 0004279 | |
2019-12-24 17:00 | barry | Status | acknowledged => feedback |
2019-12-25 00:11 | barry | Note Added: 0004280 |