Fórum Atualização de Query em rede #181450
11/09/2003
0
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
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
Curtir tópico
+ 0
Responder
Posts
12/09/2003
Mmtoor
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
MMTOOR2003
Responder
Gostei + 0
13/09/2003
Silvio Ribeiro
: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
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)