PDA

Ver la Versión Completa : Registros modificados en un TClientDataSet


Cecilio
06-10-2008, 22:21:32
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.


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:

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;