IBTable x IBQuery

Delphi

19/12/2007

Por que ao atualizar uma IBTable e na mesma hora abrir uma IBQuery, a IBQuery não mostra as atualizações da IBTable?
Ex:
With IBTable do
Begin
append;
FieldByName(´Numero´).AsInteger := 1;
Post;
IBtransaction.Commit;
IBTransaction.StartTransaction;
Open; -> aqui as modificações aparecem
End;
With IBQuery do
Begin
Close;
Clear;
SQL.Add(´Select * from tabela);
Prepare;
Open; - aqui mostra os mesmos registros que existiam anteriormente
End;


Edilcimar

Edilcimar

Curtidas 0

Respostas

Andersonscinfo

Andersonscinfo

19/12/2007

estranho mesmo....mas vc ja tentou deixar de lado o table e usar apenas a qry?


GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

ninguém se habilita?


GOSTEI 0
Dbergkamps10

Dbergkamps10

19/12/2007

Tente assim:
IBTable.ApplyUpdates;
IBTable.close;
Ibtable.open;

Espero q funcione e ter ajudado.


Att
Dalton


GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

se você notar verá que a ibtable é comitada e depois é aberta novamente, e na tabela todos os dados estão lá, porém na query que é aberta depois disto os dados não estão atualizados!


GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

Não acredito que ninguém tenha conhecimento suficiente do porquê isto acontece! Vejam bem que não estou interessado na solução, mas sim na razão disto estar acontecendo!


GOSTEI 0
Dbergkamps10

Dbergkamps10

19/12/2007

Olá Edilcimar,
Por não conhecermos a RAZÃO é q não podemos lhe dar uma SOLUÇÃO.

Att
Dalton


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

19/12/2007

Não acredito que ninguém tenha conhecimento suficiente do porquê isto acontece! Vejam bem que não estou interessado na solução, mas sim na razão disto estar acontecendo!

Colega,

Fiz o teste da forma que postou inicialmente e funcionou, ou seja, o registro é adicionado e a grade da query é atualizada. Usei Firebird 2.0 e IBX 6.11 (Delphi 6).

Seus componentes IBX estão atualizados?

  With IBTable1 do
  Begin
    append;
    FieldByName(´id_a´).AsInteger := 2;
    FieldByName(´nome´).AsString:= ´EDILCIMAR´;
    Post;
    Open; {Grade atualizada com sucesso}
  End;
  With IBQuery1 do
  Begin
    Close;
    SQL.Clear;
    SQL.Text:= ´select * from TBATLETAS´;
    Open; {Grade atualizada com sucesso}
  End;



GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

Eu uso D7 e o ibx é o que vem com ele, no meu caso faço um append na ibtable (nesta a atualização apararece), e depois abro a ibquery e só existem os registros que já existiam antes do append!


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

19/12/2007

Colega,

No site da CodeGear tem a atualização dos componentes IBX para Delphi 7. Como eu fiz o mesmo teste que você fez e não deu problema, creio que podem ser os componentes IBX.


GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

vou ver e depois informo


GOSTEI 0
Edilcimar

Edilcimar

19/12/2007

Não funcionou.
Se a ibquery estiver aberta, alterar a ibtable e depois reabrir a ibquery as modificações feitas na ibtable não aparecem na ibquery, porém se a ibquery estiver inicialmente fechada, aí elas aparecem


GOSTEI 0
POSTAR