Ver Mensaje Individual
  #1  
Antiguo 06-01-2011
chiche_s chiche_s is offline
Registrado
 
Registrado: dic 2009
Posts: 6
Reputación: 0
chiche_s Va por buen camino
ApplyUpdates da un error 'Unsupported feature' en Delphi 2009

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 [-]
// Llamo al formulario para la modificación de datos del cliente
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 [-]
// Acepto las modificaciones realizadas
procedure TFCliente.BitBtn1Click(Sender: TObject);
begin
  LogicaNegocio.TClientes.Post;
  ModalResult:= mrOk
end;


Código Delphi [-]
// Actualizo el DBGrid con los nuevos datos si los hay
procedure TLogicaNegocio.TClientesAfterPost(DataSet: TDataSet);
begin
  if TClientes.ChangeCount>0 then
    begin
      TClientes.ApplyUpdates(0); // Aquí explotan las excepciones
      TClientes.Refresh;
      if TClientes.Active then
        TLstClientes.Refresh
    end;
end;


Desde ya será muy bien recibida cualquier ayuda.

Última edición por chiche_s fecha: 06-01-2011 a las 03:56:41. Razón: No aparecía bien el código
Responder Con Cita