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.
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)