Fórum Refresh em Firebird #364150
19/09/2008
0
Estou terminando um sistema, e ja esta fuincionando em rede.
A questão é o seguinte.
Abro o sistema nas duas máquinas.. onde o banco esta na máquina servidor.
No micro1, quando adiciono um cliente na tabela clientes, consigo ver que adicionei, mas somente no micro1, no micro2 só consigo visualizar que foi adicionado depois que fecho o sistema no micro1.
Utilizo Delphi 2007 + Firebird 1.5
IBQuery + IBUpdateSQL = Componentes da tabela interbase.
Tem algum modo de inserir os dados direto no banco, sem ficar no buffer da máquina? Sem precisar fechar o sistema no micro1 para poder ver os dados inclusos no sistema que esta no micro2?
Desde ja agradeço.
Betofrasson
Curtir tópico
+ 0Posts
19/09/2008
Paullsoftware
depois de dá o Post para salvar os dados acrescente o commit
Gostei + 0
20/09/2008
Diegotiemann
IBtransaction.commit , ou comitRetain
Gostei + 0
20/09/2008
Betofrasson
paull..
Tentei fazer como você me disse..
ClientesQuery.Post;
IBtransaction.Commit;
nao funfou..
---------------------------
dai tentei utilizar
ClientesQuery.ApplyUpdates;
IBtransaction.CommitRetaining;
até funcionou.. mais inverteu a situação agora..
Antes o micro1 tinha que fechar para o micro2 puder ver as alterações feitas. Agora após eu dar os comandos acima, ele grava direto no banco, mas o micro2 tem que fechar para poder ver as alterações feitas.
Já tentei abrir e fechar a query.
dar um refresh na query tb.
o que eu nao posso fazer eh fechar e abrir a banco de dados.
isso eu nao posso, pois tenho um sistema de login antes,
que cada novo usuario que é adicionado para utilizar o programa é criado uma tabela no banco com o nome desse usuario. dai na hora do login faço assim para entrar na tabela desse usuario.
ClientesQuery.SQL.Clear;
ClientesQuery.SQL.Add(´select * from ´ + UsuarioQueryUSUARIO.Value);
ClientesQuery.Open;
se eu abrir e fechar o banco eu perco esse sql.
Tem alguma outra forma de fazer o que eu estou querendo?
Com o CommitRetaining ele nao fica em buffer, joga direto no banco.
mas o unico empecilho é que tenho que abrir e fechar o outro micro para poder ver a atualização feita..
desde ja agradeço a ajuda.
Gostei + 0
20/09/2008
Betofrasson
ClientesQuery.ApplyUpdates;
IBtransaction.CommitRetaining;
funcionou sim..
soh tinha faltado um detalhe no meu sistema.. falta de atenção.. hehehh..
mais eh só isso mesmo..
agora tenho que estudar sobre niveis de isolamento..
que eh muito importante para funcionar 100¬ o sistema..
valeu galera..
tudo d bom.. e bom find semana pra vcs..
Gostei + 0
20/09/2008
Paullsoftware
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)