Всем здравствовать.
Lazarus 1.8.0
Разбираюсь с созданием службы для windows
по статье http://www.freepascal.ru/article/lazaru ... 403120204/
В целом работает, создал и запустил службу которая открывает при старте файл на диске и пишет туда ДатуВремя раз в 10 секунд по таймеру.
Сложности начались при попытке подключиться к MS SQL Server
Закомментил весь код почти и определил в чем проблема, опишу только финальную точку на которой видно проблему.
1. у daemonunit есть дата модуль назвал его DM и накидал туда компонент
т.е. получается так
type TDM = class(TDaemon)
MSSQLServ: TMSSQLConnection;
Select: TSQLQuery;
SQLTrans: TSQLTransaction;
Timer1: TTimer;
var DM: TDM;
2. Если в daemon_unit я пишу MSSQLServ.HostName:='127.0.0.1'; то скомпилированная служба запускается и работает
3. Если я выношу MSSQLServ.HostName:='127.0.0.1'; в другой модуль sql_unit где пишу daemon_unit.DM.MSSQLServ.HostName:='127.0.0.1'; или DM.MSSQLServ.HostName:='127.0.0.1';
то служба при попытке запуска долго думает и вылетает с ошибкой, о том что во время не ответила.
в uses оба модуля друг другу прописаны.
При этом, когда я тестировал запись в файл то пользовался процедурами из другого модуля writelog_unit и это работало, но в случае с компонентой расположенной в ДатаМодуле "демона" это приводит к ошибке.
Получается что к компонентам из разных модулей в случае служб нельзя обращаться?