Ver Mensaje Individual
  #1  
Antiguo 06-10-2008
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Reputación: 17
Cecilio Va por buen camino
Registros modificados en un TClientDataSet

Hola a todos.

Tengo un TClientDataSet configurado para crear una xml con registros de telefonos, etc.

El problema es que al hacer Open, la propiedad ChangeCount se pone con el mismo valor que el número de registros hay, con lo cual no puedo detectar los cambios que se realizaron.
Voy a poner los dos métodos, de apertura y detección de cambios. Por si alguien me puede ayudar:

CDS Es el componente TclientDataSet como es natural.

Código Delphi [-]
Procedure Tform1.OpenCatalog(const AFileName: string);
begin
    cds.Close;
  cds.FileName:=AFileName;

  if not FileExists(Afilename) then
    cds.CreateDataSet;

  cds.Open;

  DisplayDataset; // muestra los registros

end;

Para detectar cambios:
Código Delphi [-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  i: Integer;
begin

i:=cds.ChangeCount;
ShowMessage(IntTostr(i));

if i>0 then
begin
   case MessageDlg('¿Desea Guardar los cambios ?',mtConfirmation,
     mbYesNoCancel,0) of
     mrYes: guardar.Execute;
     mrNo: cds.CancelUpdates;
     mrCancel: CanClose := false;
   end; // case
 end;   // if
end;
__________________
Saludos Cordiales.
------------------

Responder Con Cita