Timer em Delphi que executa de tempo em tempo

Delphi

27/06/2015

Gostaria de saber , Queria saber como programo um Timer que executa código a cada 50 segundos ou outro intervalo
Rodrigo Martins

Rodrigo Martins

Curtidas 1

Melhor post

Dorivan Sousa

Dorivan Sousa

29/06/2015

configura a propriedade interval do timer... para cada segundo multiplique por 1000 (mil)... e programe o evento onTimer
GOSTEI 2

Mais Respostas

Rodrigo Oliveira

Rodrigo Oliveira

27/06/2015

Martins, pode dar um retorno para o nosso amigo Dorivan?
GOSTEI 1
Rodrigo Martins

Rodrigo Martins

27/06/2015

Obrigado! , Deu certo, coloquei 50 segundos, eu atualizo uns dados do grid via rede! dai o timer me ajudou a da um refresh meio que na força bruta!
GOSTEI 0
Dorivan Sousa

Dorivan Sousa

27/06/2015

se tiver usando firebird ao inves de usar timer usa o EXCEPTION/POST EVENT... se vc usar time e ficar a todo momento consultando dados vai consumir muitos recursos...

com o exception do firebird vc dispara ele em uma trigger e toda vez que a tabela for modificada vc recebe um aviso na aplicacao e ai atualiza a tela.

CREATE EXCEPTION MVTO_CAIXA_ALTERADA 'Movimentos do Caixa Alterado, Incluido ou Excluido';


SET TERM ^;
CREATE TRIGGER MVTO_CAIXA_AIUD0 FOR MVTO_CAIXA
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
  POST_EVENT 'MVTO_CAIXA_ALTERADA';
end
 ^

COMMIT WORK ^
SET TERM ;^


pra capturar pode usar o IBEvents(interbase) ou o FDEventAlert (firedac) evento onalert

  if AEventName='MVTO_LIBERADO' then
  begin
     aqui vc faz a chamada da sua consulta
  end;
GOSTEI 1
Rodrigo Oliveira

Rodrigo Oliveira

27/06/2015

Valeu pelo retorno, pode colocar a solução?
GOSTEI 0
Rodrigo Martins

Rodrigo Martins

27/06/2015

Ok , obrigado estou fazendo no interbase, irei testar aqui !
GOSTEI 0
Robson Morais

Robson Morais

27/06/2015

porque desse exception ?

CREATE EXCEPTION MVTO_CAIXA_ALTERADA 'Movimentos do Caixa Alterado, Incluido ou Excluido';


se tiver usando firebird ao inves de usar timer usa o EXCEPTION/POST EVENT... se vc usar time e ficar a todo momento consultando dados vai consumir muitos recursos...

com o exception do firebird vc dispara ele em uma trigger e toda vez que a tabela for modificada vc recebe um aviso na aplicacao e ai atualiza a tela.

CREATE EXCEPTION MVTO_CAIXA_ALTERADA 'Movimentos do Caixa Alterado, Incluido ou Excluido';


SET TERM ^;
CREATE TRIGGER MVTO_CAIXA_AIUD0 FOR MVTO_CAIXA
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
  POST_EVENT 'MVTO_CAIXA_ALTERADA';
end
 ^

COMMIT WORK ^
SET TERM ;^


pra capturar pode usar o IBEvents(interbase) ou o FDEventAlert (firedac) evento onalert

  if AEventName='MVTO_LIBERADO' then
  begin
     aqui vc faz a chamada da sua consulta
  end;
GOSTEI 0
Hélio Devmedia

Hélio Devmedia

27/06/2015

porque desse exception ?

CREATE EXCEPTION MVTO_CAIXA_ALTERADA 'Movimentos do Caixa Alterado, Incluido ou Excluido';




Na verdade não precisa.

A exception no Banco é uma forma de você armazenar uma string de aviso e disparar quando necessário. pode ser chamada dentro de uma procedure, trigger ou comandos plSQL.

Por exemplo, você pode criar uma exception chamado VALOR_NEGATIVO com uma descrição amigável ao usuário e colocar num campo da tabela de venda uma regra que se o valor for negativo ele dispara a exceção. Se alguem informar -1 ele não vai deixar gravar e vai apresentar a descrição amigável que você escreveu para o usuário.

Mas se você quiser disparar o POST_EVENT 'MVTO_CAIXA_ALTERADA' sem criar uma exception de mesmo nome, também dá certo...

GOSTEI 0
POSTAR