Minha Query não esta buscando os valores atualizados no Banc
Ola pessoal gostaria da ajuda de vcs!
Estou usando o Delphi 2007 como ferramenta e o FireBird 2.0 como Banco de Dados, e para consulta do Banco de Dados, o famoso IBExpert.
o Problema é o seguinte, estou desenvolvendo um sistema simples,
onde varias pessoas estao acessando diretamenta o meu banco de dados pela rede, o banco de dados esta localizada na minha maquina IP 172.16.0.23,
mas toda vez que alguem inclui ou exclui alguma coisa no meu banco de dados uma outra pessoa que esteja com aplicação aberta nao ve que foi excluido ou incluido o registro, a nao ser que ela feche a aplicação e abra ela novamente ai vai constar quue foi excluido ou incluido, mas eu nao quero que seja dessa forma, quero que quando alguem exclui ou inclui apareca que foi modificado.
estou usando todos os componentes de conexao da guia INTERBASE, que são:
IBDATABASE para conexao com o banco de Dados;
IBTRANSACTION;
IBQUERY
IBUPDATESQL
e da guia DATA ACCESS
DATASOURCE
quando alguem vai salvar alguma coisa o codigo é o seguinte:
modulo.IBQLogixNOME.Text :=edtNome.text;
modulo.IBQLogixV1.Text :=edtV1.Text;
modulo.IBQLogixV2.Text :=edtV2.Text;
modulo.IBQLogixV3.Text :=edtV3.text;
modulo.IBQLogixV4.Text :=edtV4.text;
modulo.IBQLogixV5.Text :=edtV5.Text;
modulo.IBQLogix.Post;
modulo.IBTransacao.Commit;
e quando alguem vai consultar o codigo que eu utilizo é este:
estou usando no evento do edit ONKEYUP, quando é digitado
modulo.IBQLogix.close;
modulo.IBQLogix.SQL.Clear;
modulo.IBQLogix.SQL.Add(´select * from logix´);
modulo.IBQLogix.SQL.Add(´where logix.nome like ´¬´+edtpesquisa.Text+´¬´´´);
modulo.IBQLogix.Open;
Lembrando que eu nao estou usando o Cache Update da query, eu usei mas tambem nao funcionou, eu tambem começei usar o commitretaining, mas eu li em uns forum onde o pessoal aconselha a usar o commit.
alguem poderia me dar uma ajuda ou alguma dica, eu agradeceria muito. :wink:
Estou usando o Delphi 2007 como ferramenta e o FireBird 2.0 como Banco de Dados, e para consulta do Banco de Dados, o famoso IBExpert.
o Problema é o seguinte, estou desenvolvendo um sistema simples,
onde varias pessoas estao acessando diretamenta o meu banco de dados pela rede, o banco de dados esta localizada na minha maquina IP 172.16.0.23,
mas toda vez que alguem inclui ou exclui alguma coisa no meu banco de dados uma outra pessoa que esteja com aplicação aberta nao ve que foi excluido ou incluido o registro, a nao ser que ela feche a aplicação e abra ela novamente ai vai constar quue foi excluido ou incluido, mas eu nao quero que seja dessa forma, quero que quando alguem exclui ou inclui apareca que foi modificado.
estou usando todos os componentes de conexao da guia INTERBASE, que são:
IBDATABASE para conexao com o banco de Dados;
IBTRANSACTION;
IBQUERY
IBUPDATESQL
e da guia DATA ACCESS
DATASOURCE
quando alguem vai salvar alguma coisa o codigo é o seguinte:
modulo.IBQLogixNOME.Text :=edtNome.text;
modulo.IBQLogixV1.Text :=edtV1.Text;
modulo.IBQLogixV2.Text :=edtV2.Text;
modulo.IBQLogixV3.Text :=edtV3.text;
modulo.IBQLogixV4.Text :=edtV4.text;
modulo.IBQLogixV5.Text :=edtV5.Text;
modulo.IBQLogix.Post;
modulo.IBTransacao.Commit;
e quando alguem vai consultar o codigo que eu utilizo é este:
estou usando no evento do edit ONKEYUP, quando é digitado
modulo.IBQLogix.close;
modulo.IBQLogix.SQL.Clear;
modulo.IBQLogix.SQL.Add(´select * from logix´);
modulo.IBQLogix.SQL.Add(´where logix.nome like ´¬´+edtpesquisa.Text+´¬´´´);
modulo.IBQLogix.Open;
Lembrando que eu nao estou usando o Cache Update da query, eu usei mas tambem nao funcionou, eu tambem começei usar o commitretaining, mas eu li em uns forum onde o pessoal aconselha a usar o commit.
alguem poderia me dar uma ajuda ou alguma dica, eu agradeceria muito. :wink:
Marlonnardi
Curtidas 0
Respostas
Brunodsr
25/06/2008
Ola,
O problema esta na tua transacao.. ela ta configurada como snapshot. Muda ela p/ readcommited. Dai todo mundo vai ver o que o outro fez sem precisar sair e abrir de novo. blz?
Obs.: Para configurar, clica duas vezes no componente transaction.
Espero ter ajudado.
O problema esta na tua transacao.. ela ta configurada como snapshot. Muda ela p/ readcommited. Dai todo mundo vai ver o que o outro fez sem precisar sair e abrir de novo. blz?
Obs.: Para configurar, clica duas vezes no componente transaction.
Espero ter ajudado.
GOSTEI 0
Marlonnardi
25/06/2008
Amigo,
voce nao sabe o quanto eu bati a cabeça por causa disso, ja refiz o meu codigo umas 3 vezes, rsrsrsrssr.
eu marquei la opção e funcionou tudo blz
BRUNO, MUITO OBRIGADO PELA DICA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
voce nao sabe o quanto eu bati a cabeça por causa disso, ja refiz o meu codigo umas 3 vezes, rsrsrsrssr.
eu marquei la opção e funcionou tudo blz
BRUNO, MUITO OBRIGADO PELA DICA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
GOSTEI 0
Brunodsr
25/06/2008
Acontece brother..
Um abraco
Um abraco
GOSTEI 0
Wgm8
25/06/2008
Comigo este solução não resolveu:
Estou usando o Delphi 5;
TDataBase;
TQuery;
TUpdateSQL;
TDataSource;
TDBNavigator;
Com BDE;
Alguém sabe porque não atualiza?
Estou usando o Delphi 5;
TDataBase;
TQuery;
TUpdateSQL;
TDataSource;
TDBNavigator;
Com BDE;
Alguém sabe porque não atualiza?
GOSTEI 0
Brunodsr
25/06/2008
No seu caso, vc tem q configurar isso no proprio BDE.
OPEN/MODE.
Espero ter ajudado
OPEN/MODE.
Espero ter ajudado
GOSTEI 0
Brunodsr
25/06/2008
No seu caso, vc tem q configurar isso no proprio BDE.
OPEN/MODE.
Espero ter ajudado
Desculpe.. confusao minha. Instrucao errada.
Verifica se antes das tuas insercoes/modificacoes existe um startransaction e ao final um commit. O BDE ja trabalha por default como read/commited.
se n rolar, manda um exemplo do teu codigo ou um programa de teste. blz?
GOSTEI 0