Fórum Banco de dados não atualiza em tempo real #207880
20/01/2004
0
Meni.momm
Curtir tópico
+ 0Posts
20/01/2004
Tuca@ctgeo.com.br
eu utilizei o método .requery do Recordset
Luiz Fernando
Gostei + 0
20/01/2004
Weber
Gostei + 0
20/01/2004
Vinicius2k
uma vez efetuada uma query com select os registros que ela contém não sofrem alteração motivada de forma externa, ou seja, a máquina X não consegue fazer com que a máquina Y re-execute a query...
o tempo real não existe, a forma mais trivial de contornar isso, é abrir a query ao abrir o form e fechá-la, quando fechar o form... é bastante comum, também um botão ´Atualizar´ que feche e abra a query, mas vale o cuidado : dependendo do tamanho da tabela e do desempenho da rede e da máquina... o botão ´Atualizar´ pode não ser uma boa prática...
espero ter ajudado...
Gostei + 0
20/01/2004
Meni.momm
Olá Colega, estou realmente usando o Commit e o Rollback, vc pode me explicar qual a diferença entre eles para o CommitRetaining e ollbackRetaining?
Gostei + 0
20/01/2004
Meni.momm
Colega, o proceso que você explica assima eu entendo, mas só que mesmo eu reiniciando a query os registro não aparecem até que eu feche o sistema, este processo que você descreve acima funciona corretamente se usado o database ou o bde mas diretamente no interbase não estou conseguindo. Obrigado pela atenção, Abraço!
Gostei + 0
20/01/2004
Vinicius2k
realmente seu problema deve ser relacionado ao commit das queryes... neste caso siga as instruções do colega weber...
Gostei + 0
20/01/2004
Meni.momm
Valeu! :D
Gostei + 0
20/01/2004
Weber
O que sei é que
CommitRetaining = Efetua o commit, fecha somente a transação da estação e atualiza os dados.
Commit = Efetua o commit, fecha todas as transações e não atualiza os dados.
Veja um exemplo de como eu utilizo nos meus sistemas
--------------------------------------------------------------------
try
if not DM.Transaction.InTransaction then
DM.Transaction.StartTransaction;
DM.QRExec.SQL.Clear;
DM.QRExec.SQL.Add(´Insert into ......
DM.QRExec.ExecSQL;
DM.Transaction.CommitRetaining;
MessageBox(handle,´Operação concluida´,´Aviso´,mb_OK+mb_ICONINFORMATION);
end;
except
on E:Exception do
begin
DM.Transaction.RollbackRetaining;
MensagemErro(E,´´);
end;
end;
-----------------------------------------------------------------------
DM = Meu formulário DataModule
Transation = Componente IBTransacion
QRExec = Componente IBQuery
Trabalho dessa forma a mais de dois anos e nunca tive problemas, tenho sistema rodando em 12 estações ao mesmo tempo.
Tenho sistema onde quatro estações utilizam a mesma tela simultaneamente.
Gostei + 0
20/01/2004
Weber
MensagemErro é uma função que mostra um ShowMessage com o SQL da Query mais a mensagem de erro retornada pelo banco.[/b]
Gostei + 0
20/01/2004
Meni.momm
CARA! VC CAIU DO CEU! Um abraço! :lol:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)