Fórum Erro: Must apply updates before refreshing data #231220

10/05/2004

0

Uso DbExpress c/ clientdataset e FB 1.5.
Tenho um form com dois panels, um de cadastro e outro de consulta.
Uso 2 datasources, um p/ cadastro e outro p/ consulta.
Acontece q qdo vou atualizar pelo dbgrid da consulta ele não atualiza a tabela.
Olhem só:
var
tr :TTransactionDesc;
begin
inherited;
tr.TransactionID:=1;
tr.IsolationLevel:=xilReadCommitted;
SQLConnection1.StartTransaction(tr);
if not(DataSource1.State in [dsEdit]) then
ClientDataSet1.Edit;
ClientDataSet1.Post; // Tirei aki, mas a mesma coisa
ClientDataSet1ApplyUpdates(-1); //Tentei mudar aki p/ zero,1,2...
SQLConnection1.Commit(tr);
ClientDataSet1.Refresh; // Aki erro
// Tirando o refresh não dá o erro e nem atualiza a tabela
end;
end;

Obs: Coloquei esses comentários no fonte pois já mandei uma pergunta relacionada a esse tópico e com base nas respostas formulei assim o tópico.

Alguém poderia me ajudar...
Desde já meus agradecimentos.


G1b4

G1b4

Responder

Posts

11/05/2004

Jecseu

Feche e abra o clientdataset que ele atualiza. O Refresh as vezes não funciona com o clientdataset.

Jean carlos - DF


Responder

Gostei + 0

12/05/2004

Rômulo Barros

Caro amigo... o refresh somente funciona quando o applyupdates consegue gravar todos os registros, sem ocorrer erro nenhum. então, tente assim:

VAr
  tr :TTransactionDesc; 
  NumErros : Integer;
begin 
inherited; 
tr.TransactionID:=1; 
tr.IsolationLevel:=xilReadCommitted; 
SQLConnection1.StartTransaction(tr); 
if not(DataSource1.State in [dsEdit]) then 
ClientDataSet1.Edit; 
ClientDataSet1.Post; // Tirei aki, mas a mesma coisa 
NumErros := ClientDataSet1ApplyUpdates(-1); //Tentei mudar aki p/ zero,1,2... 
SQLConnection1.Commit(tr); 
If(NumErros=0)Then
  ClientDataSet1.Refresh; // Aki erro 
// Tirando o refresh não dá o erro e nem atualiza a tabela 
end; 
end; 



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar