Será que DBtipPessoa.ItemIndex <> -1 realmente? Senão, cai direto no refresh.
Cristiane ----- Original Message ----- From: Gilmar Barbosa To: delphi-br@yahoogrupos.com.br Sent: Monday, January 11, 2010 5:53 PM Subject: [delphi-br] Must apply updates before refreshing data Boa Tarde, Estou tendo um problema em um sistema, na tela para cadastro de clientes. Estou usando Delphi 7, Firebird 2.1.3, DbExpress e IbExpert. Quando estou clicando no botao Salvar esta dando a mensagem de erro do Assunto: Must Apply Updates Before Refreshing Data. No meu DM, no ClientDataSet, no evento AfterPost, esta a seguinte linha de comando: tbCliente.ApplyUpdates(0); Ja tentei mudar para -1, mas continua o mesmo erro. O botao Salvar esta com a seguinte programacao: procedure TFrmCliente.spbsalvarClick(Sender: TObject); var i: integer; begin FrmCliente.SetFocus; If DBtipPessoa.ItemIndex <> -1 then if application.messagebox('Deseja Salvar Dados ?','Confirma Dados',mb_yesno +mb_iconquestion) = idyes then begin if novo = 0 then begin Dm.StoredProc1.StoredProcName:= 'AUTO_CLI'; // Prepara para executar a Stored Procedure if not Dm.StoredProc1.Prepared then Dm.StoredProc1.Prepared:= true; Dm.StoredProc1.ExecProc; // Executa codcli:= Dm.StoredProc1.ParamByName('CODCLI').AsInteger; Dm.StoredProc1.Close; // Pega o valor do Generator dsCliente.DataSet.Edit; DM.tbClienteCODIGO.AsInteger:= codcli; dsCliente.DataSet.Post; end else begin //DM.tbCliente.Edit; dsCliente.DataSet.Edit; dsCliente.DataSet.Post; //DM.tbCliente.Post; end; DM.tbCliente.ApplyUpdates(0); end else dsCliente.DataSet.Cancel;// DM.tbCliente.cancel; // Irá desabilitar os botões para serem editados for i := 0 to FrmCliente.ComponentCount -1 do if FrmCliente.Components[i] is TCustomEdit then (FrmCliente.Components[i] as TCustomEdit).Enabled:= false; //dm.tbCliente.Refresh; dsCliente.DataSet.Refresh; lblqtd.Caption:= 'Clientes cadastrados: '+inttostr(DM.tbCliente.recordCount); DBtipPessoa.Enabled:= False; DBEstadoCivilF.Enabled:= False; DBtipoF.Enabled:= False; DBResidenciaF.Enabled:= False; DBEmiteCobF.Enabled:= False; //DBEstadoCivilJ.Enabled:= False; DBtipoJ.Enabled:= False; //DBResidenciaJ.Enabled:= False; DBEmiteCobJ.Enabled:= False; spbnovo.enabled:=TRUE; spbexcluir.enabled:=TRUE; spbalterar.enabled:= TRUE; spbfechar.enabled:= TRUE; spbsalvar.enabled:= false; spbcancelar.enabled:= false; EDIT1.Enabled:= true; end; O que eu acho estranho eh que antes tava funcionando normalmente. Depois comecou a dar este problema. Ja verifiquei no Google, nas msgs anteriores da lista, mas ainda nao consegui uma solucao para o meu problema. Esta mesma programacao esta em todos os outros cadastros, mas soh o cliente esta dando problema. Obrigado, desde jah pela ajuda. Gilmar [As partes desta mensagem que não continham texto foram removidas] ------------------------------------------------------------------------------ E-mail verificado pelo Terra Anti-Spam. Para classificar esta mensagem como spam ou não spam, clique aqui. Verifique periodicamente a pasta Spam para garantir que apenas mensagens indesejadas sejam classificadas como Spam. ------------------------------------------------------------------------------ Esta mensagem foi verificada pelo E-mail Protegido Terra. Atualizado em 12/01/2010 [As partes desta mensagem que não continham texto foram removidas]