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

Delphi

25/06/2008

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:


Marlonnardi

Marlonnardi

Curtidas 0

Respostas

Brunodsr

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.


GOSTEI 0
Marlonnardi

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


GOSTEI 0
Brunodsr

Brunodsr

25/06/2008

Acontece brother..

Um abraco


GOSTEI 0
Wgm8

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?


GOSTEI 0
Brunodsr

Brunodsr

25/06/2008

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

OPEN/MODE.

Espero ter ajudado


GOSTEI 0
Brunodsr

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
POSTAR