Saludos a todo aquel que lea este mensaje.
He estado practicando con la versión 2.5 de Firebird y siguiendo un tutorial del blog de
Delphi al límite hice una pequeñísima aplicación de mantenimiento de clientes. Pero me encontré con un gran inconvieniente. La versión 2009 de Delphi se "rehúsa"
a trabajar con los componentes TClientDataSet ya que cuando quiero hacer una actualización de los datos de un cliente, si lo ejecuto desde el IDE arroja el error del título, e inmediatamente después, el siguiente:
Project Project1.exe raised exception class EDatabaseError with message 'TClientes: Must apply updates before refreshing data'.
El código que utilizo es el siguiente:
Código Delphi
[-]procedure TFClientes.BitBtn2Click(Sender: TObject);
begin
LogicaNegocio.TClientes.Params.ParamByName('id').AsString:= LogicaNegocio.TLstClientesIDCLIENTE.AsString;
LogicaNegocio.TClientes.Open;
LogicaNegocio.TClientes.Edit;
Application.CreateForm(TFCliente, FCliente);
FCliente.ShowModal;
LogicaNegocio.TClientes.Close;
ListadoClientes.SetFocus
end;
Código Delphi
[-]procedure TFCliente.BitBtn1Click(Sender: TObject);
begin
LogicaNegocio.TClientes.Post;
ModalResult:= mrOk
end;
Código Delphi
[-]procedure TLogicaNegocio.TClientesAfterPost(DataSet: TDataSet);
begin
if TClientes.ChangeCount>0 then
begin
TClientes.ApplyUpdates(0); TClientes.Refresh;
if TClientes.Active then
TLstClientes.Refresh
end;
end;
Desde ya será muy bien recibida cualquier ayuda.