Minha Query não esta buscando os valores atualizados no Banc

25/06/2008

1

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:


Responder

Posts

25/06/2008

Brunodsr

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.


Responder

25/06/2008

Marlonnardi

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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Responder

25/06/2008

Brunodsr

Acontece brother..

Um abraco


Responder

02/07/2008

Wgm8

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?


Responder

09/07/2008

Brunodsr

No seu caso, vc tem q configurar isso no proprio BDE.

OPEN/MODE.

Espero ter ajudado


Responder

09/07/2008

Brunodsr

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?


Responder