Atualização de Query em rede

Delphi

11/09/2003

Oi, pessoal!

Eis a situação: estou fazendo um sistema de controle de aulas em delphi 7, usando banco de dados Access (componentes ADO) e conexão Microsoft Jet.

Na tela inicial tenho um StringGrid onde são exibidos os horarios das aulas e os alunos marcados para cada horario. Quando marco uma aula para determinado aluno, este entra na StrGrid no horário determinado. Até ai, tudo beleza.

Hoje testei o sistema em rede. Setei um PC como servidor e o outro como cliente marquei algumas aulas nas duas máquinas e a comunicação entre os dois funcionaram, exceto por um simples detalhe: o stringgrid nao está sendo atualizado automaticamente na máquina quando a outra faz a marcação de aula. O banco de dados é atualizado sim! Mas a query que puxa os dados para a stringgrid só é atualizada depois que é dado um refresh nela! Ai os dados aparecem perfeitos.

A pergunta é: como fazer com que as maquinas detectem a alteração no banco de dados e neste caso atualizar a query (com um refresh ou um close/open);

agradeço antecipadamente,

Silvio Ribeiro


Silvio Ribeiro

Silvio Ribeiro

Curtidas 0

Respostas

Mmtoor

Mmtoor

11/09/2003

para a sua colocação de refresh ou close/open, a segunda seria a mais indicada, porém, se estivesse usando um outro tipo BD isso poderia ser feito de forma diferente.
MMTOOR2003


GOSTEI 0
Silvio Ribeiro

Silvio Ribeiro

11/09/2003

:shock: Ok! Mas fiquei na mesma.

Geralmente uso o close/open como um refresh, uma vez que o refresh nem sempre funciona corretamente (a nao ser que seja só para atualizacao de um registro que foi alterado ou algo assim).

Mas o X da questao eh: como detectar (pelas demais maquinas) que a tabela do banco de dados (no meu caso a tabela é ´AULAS´) sofreu alguma alteração em seus registros de forma que eu possa chamar o close/open para atualizar a query que puxa os dados para exibicao!

Já me sugeriram colocar um timer e ir verificando de tempo em tempo, mas essa nao seria a forma mais indicada, uma vez que iria sobrecarregar a rede e o sistema a cada onTimer.

Pensei em uma solucao como algum componente ou semelhante que ficasse monitorando o Banco de Dados, quando detectasse alguma alteracao de alguma tabela, um evento seria gerado e ai o problema estaria resolvido. Alguem sabe de algo que faça isso? ou outra forma?

Obrigado mais uma vez

Silvio Ribeiro


GOSTEI 0
POSTAR