Primeiro: O Servico é uma thread, por tanto vc nao precisa de um timer.

Segundo:
    while not Terminated do begin
      if StrToInt(FormatDateTime('ss', Time)) = 5 then 
{ 
Assim a sua proc sera executada a cada 5 segundos.
Cabe a vc definir isso.
}
      Begin
        Sleep(1000); 
// para não executar duas vezes ou mais dentro do mesmo periodo.
        ExecutaPocedure;
      end;
      ServiceThread.ProcessRequests(true);
    end;

Terceiro: Instale (executar não é instalar) o seu servico, assim ele vai 
funcionar.

Quarto: Help -> TserviceApplication -> See also, com este caminho vc aprende a 
instalar.


Quinto: Não da para depurar teoricamente, mas com um jeitinho bem brasileiro 
dah. No evento Create chame a sua procedure (ExecutaPocedure) coloque um break 
point, certifique que o servico não esta iniciado. Compile o prj e depure com 
F7.


Eduardo
Ps.: Se precisar estou no MSN [EMAIL PROTECTED]


-----Original Message-----
From: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Gabriel Moricz
Sent: terça-feira, 14 de fevereiro de 2006 09:26
To: delphi-br@yahoogrupos.com.br
Subject: [delphi-br] Application Service + Não Funciona + Como debugar.

Bom dia pessoal..

Estou com um problema e não sei o que o causa..

Estou criando uma Application Service.

Esse application service roda no On ServiceExecute (não criando
threads). onde o SerciceExecute faz o seguinte:

procedure TService1.ServiceExecute(Sender: TService);
begin
  timer.enabled := true;
  while not Terminated do begin
    ServiceThread.ProcessRequests(true);
  end;
  timer.enabled := False;
  ServiceThread.ProcessRequests(false);
end;

Porem no momento do OnTimer. ele não executa as queries e etc que
seria necessário efetuar.


Então tentei.


procedure TService1.ServiceExecute(Sender: TService);
const secs = 5;
var count : integer;
begin
    count := 0;
    while not Terminated do begin
      inc(count);
      if (count > secs) then begin
        count := 0;
        ExecutaPocedure;
      end;
      sleep(1000);
      ServiceThread.ProcessRequests(true);
    end;
end;


Porem. também não funcionou (não chamou a ExecutaProcedure), e pior,
ele finaliza o serviço depois dos 5 segundos.

Minha aplicação faz uma requisição ao banco. e envia SMS de acordo com
a requisição.


Ahhh..Já que estou na pergunta. Como faço para debugar essa aplicação.
Também não consegui.



Muito Obrigado a todos..


Gabriel Moricz





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>


 
Links do Yahoo! Grupos




 





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a