Hola Luis.
El método SaveToFile llama indirectamente a WriteDataPacket, el cual inicia con estas líneas:
Código Delphi
[-]procedure TCustomClientDataSet.WriteDataPacket(Stream: TStream; WriteSize: Boolean;
Format: TDataPacketFormat = dfBinary);
var
Size: Integer;
DataPtr: Pointer;
begin
if Active then CheckBrowseMode;
Ese
CheckBrowseMode se encarga ya sea de guardar (en la memoria del conjunto de datos) o de cancelar el registro que se encuentra en modo de inserción. Es decir, hace un
Post o un
Cancel, dependiendo de si el registro tiene o no valores que hayan sido asignados a sus campos fuera del evento OnNewRecord. Si el registro ya tiene capturado algo, debería guardarse y luego ser incluido en la exportación; en cambio, si está
vacío se cancelará.
Por otra parte, ¿no te animaste a usar AppendData? Así no dependerías de un archivo.
Saludos.
Al González.