Executar uma consulta a cada mudança nos dados
01/03/2005
0
Alguem sabe como eu executo uma consulta sempre q houver mudança nos dados, ou seja, sempre que um terminal da rede adicionar um novo registro na tabela em questao o programa refaça a consulta?
valeu...
Dorivansousa
Posts
01/03/2005
Delphi32
Se for Firebird 1.5, faça o seguinte:
crie um trigger de after_update na tabela que você vai querer ´monitorar´. coloque o seguinte comando no trigger. POST_EVENT ´tabela_atualizada´. Agora no seu form coloque um componente IBEvents. Esse componente ´monitora´ o banco de dados e sempre que há um comando como o POST_EVENT ele retorna para a sua aplicação. Ligue ele ao seu Database. Na propriedade Events dele digite o(s) evento(s) que você vai querer capturar na sua aplicação. No exemplo, adicione apenas ´tabela_atualizada´. Coloque em algum evento do form, como o OnCreate (eu costumo usar logo após ter mandado abrir o banco de dados) o seguinte:
IBEvents1.RegisterEvents;
Agora vá no evento OnEventAlert do IBEvents e coloque o seguinte:
if EventName=´tabela_atualizada´ then ShowMessage(´A tabela foi atualizada!´);
No seu caso, você vai dar um refresh na tabela ao invés do ShowMessage.
Obs.: Não tenho absoluta certeza, mas acredito que isso já servia tanto pro IB6 e consequentemente pro FB 1.0.
Até!
01/03/2005
Delphi32
não esqueça de antes de fechar o form que tenha o IBEvents, chamar o seguinte:
IBEvents1.UnRegisterEvents;
Até!
01/03/2005
Dorivansousa
testei com firebird 1.0.3.972 e funcionou blz...
valeu i...
01/03/2005
Dorivansousa
testei com firebird 1.0.3.972 e funcionou blz...
valeu i...
29/06/2019
Mário Reis
Clique aqui para fazer login e interagir na Comunidade :)