IBTable x IBQuery
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;
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
Curtidas 0
Respostas
Andersonscinfo
19/12/2007
estranho mesmo....mas vc ja tentou deixar de lado o table e usar apenas a qry?
GOSTEI 0
Edilcimar
19/12/2007
ninguém se habilita?
GOSTEI 0
Dbergkamps10
19/12/2007
Tente assim:
Espero q funcione e ter ajudado.
Att
Dalton
IBTable.ApplyUpdates; IBTable.close; Ibtable.open;
Espero q funcione e ter ajudado.
Att
Dalton
GOSTEI 0
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
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
19/12/2007
Olá Edilcimar,
Por não conhecermos a RAZÃO é q não podemos lhe dar uma SOLUÇÃO.
Att
Dalton
Por não conhecermos a RAZÃO é q não podemos lhe dar uma SOLUÇÃO.
Att
Dalton
GOSTEI 0
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
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
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.
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
19/12/2007
vou ver e depois informo
GOSTEI 0
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
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