Problema com módulo de alarme

Delphi

11/05/2007

Um usuário pediu para implementar um módulo de alarme num sistema para alertar sempre que determinado campo data numa tabela passasse de um limite de tempo pré-estabelecido (no caso 1 mês). Normalmente não teria problema nenhum em fazer isso, só que nesse caso ele quer que passe 1 mês e alerte, passe outro mês e alerte novamente e assim por diante, até o registro ser atualizado. Se a quantidade de meses fosse fixa era só fazer um laço na hora de testar as datas, o que não é o caso aqui. Alguém tem uma idéia de como posso implementar isso de forma prática no sistema? Pode ser tanto na aplicação Delphi como no próprio banco (uso Firebird 1.5).


Gandalf.nho

Gandalf.nho

Curtidas 0

Respostas

Ara.es

Ara.es

11/05/2007

Você pode pegar da data somente o dia e verificar se o dia da data e menor ou igual a data atual senão você emite o alarme, não sei qual o comando que serve para isso no Firebird, pois trabalho com SQL, nele é DATEPART.

Ate mais, precisar e so falar...


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2007

O problema de fazer isso é que o alarme vai tocar todos os dias e ele só pode tocar uma vez a cada mês que passar do limite.


GOSTEI 0
Massuda

Massuda

11/05/2007

Cada vez que o alarme é disparado você podia ´rearmar´ ele para disparar em outra data no futuro.


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2007

Cada vez que o alarme é disparado você podia ´rearmar´ ele para disparar em outra data no futuro.

E como eu poderia fazer isso?


GOSTEI 0
Ipc$

Ipc$

11/05/2007

Vc pode guardar a informação no regedit.


GOSTEI 0
Massuda

Massuda

11/05/2007

Como você decide que tem que dar o alarme? Você poderia guardar quando foi o último alarme e ter uma regra do tipo ´um alarme só pode ser dados após x dias do último alarme´.


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2007

Como você decide que tem que dar o alarme? Você poderia guardar quando foi o último alarme e ter uma regra do tipo ´um alarme só pode ser dados após x dias do último alarme´.

Eu tenho que pesquisar numa tabela do banco para verificar se existe algum registro com um valor pré-determinado num campo X e cujo campo data tenha vencido em 1 ou mais meses. Se encontrar, tenho que avisar e retornar a lista dos registros encontrados.


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2007

Alguma sugestão de como posso fazer isso (de preferência que não seja algo demorado, já que essa verificação terá que ser feita diariamente)?


GOSTEI 0
Massuda

Massuda

11/05/2007

Não consigo imaginar um jeito de fazer isso sem ter uma tabela de alarmes pendentes pelo sistema.

A rotina hoje existente teria que checar quais alarmes precisam ser gerados (incluindo itens na tabela de alarmes se for preciso) e quais alarmes não são mais necessários (removendo itens da tabela de alarmes).

Numa segunda etapa, você analisaria a tabela de alarmes e geraria os alarmes, lembrando de anotar quando foi o último ou quando será o próximo; logo, uma alarme só seria gerado se estiver na tabela e se está no dia de avisar (ou se passou muito tempo desde a última vez que gerou o alarme).

Imagino que tenha uma forma de associar cada alarme com o registro que originou o alarme.

Num mexo muito com BD, deve ter forma mais simples de fazer isso.


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/05/2007

Mas esse método não ficaria muito lento?


GOSTEI 0
POSTAR