Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > поток по работе с бд в службе


Автор: Kusik 19.6.2014, 14:09
Здравсвуйте. Подскажите пожалуйста,каким образом я могу связать модуль потока по работе с бд со службой? Есть приложение с формой,которое нормально работает.теперь,когда поток отлажен,необходимо сделать службу,но при попытке подвязать поток и нициализировать его параметры в службе ругается на следующее:
Код

TthreadAlerter.OnAlert:=Createmailinglist
Error: incompatible types: 'method pointer and regular procedure'

TthreadAlert: TOraAlerter  //из модуля потока

Procedure Createmailinglist;    //процедура по обработке алерта
Begin
//some action with orastoredproc

End;
Сделал пустую службу которую можно проинсталлить но при попытке подвязать поток ругается и не могу больше ничего сделать

Автор: PointerToNil 19.6.2014, 15:43
сделайте Procedure Createmailinglist методом любого класса

Автор: drkot 22.6.2014, 04:22
Цитата(PointerToNil @  19.6.2014,  15:43 Найти цитируемый пост)
методом любого класса

Зачем?


Цитата(Kusik @  19.6.2014,  14:09 Найти цитируемый пост)
при попытке подвязать поток ругается

на что ругается, или как?

Автор: Kusik 23.6.2014, 09:42
PointerToNil, спасибо,получилось. 
Теперь хотел узнать, а можно ли использовать параметры запуска службы из командной строки ( system.params[] ) в качестве параметров  службы (Tservice.params[]) в сервис менеджере. К примеру кроме ключа /install указывать парметры подключения к серверу бд username password servername,чтобы не записывать их в реестр, а запускать службу с этими параметрами? Спасибо

Автор: PointerToNil 23.6.2014, 16:46
можно.

Автор: Kusik 24.6.2014, 07:59
Цитата(PointerToNil @ 23.6.2014,  16:46)
Можно

Исчерпывающий ответ)) я пытался парсить командную строку,когда инсталлирую службу и передавать servername,username и password в парметры запуска,но не получилось,т.к. параметр запуска readonly параметры.пробовал писать в реестр, OnAfterInstall,а потом грузить их при OnStart,но ничего не работает.т.е. служба запускается,но ничего не делает что должна делать. Когда вписываю в коде эти параметры констнтами,то все на ура. Единствееный простой способ, создавать инишник и прописывать их туда,а при запуске службы лоадить из инишника и инициализировать подключение к бд и все остальное. Лазил,искал,но не нашел,каким образом параметры командной строки можно передать в ккчестве параметров запуска и при старте их парсить

Автор: Kusik 24.6.2014, 15:39
Забил. Сделлал через инифайл и все прекрасно работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)