PDA

Ver la Versión Completa : Al guardar un clientDataSet en archivo no me mantiene los cambios


David
12-08-2008, 11:37:47
Hola

Tengo un clientDataSet en memoria, creado en tiempo de ejecución, es decir no esta enganchado a ninguna Query, toma los datos de un archivo, lo cargo en un grid, hago modificaciones, inserciones y borrado.

Luego mediante guardo los cambios mediante un savetofile en el archivo, pero resulta que me guarda los registros borrados, los modificados, etc...

No puedo hacer un applyupdate, porque da error, puesto que como he dicho no tiene Provider, al no tener Query.

Cual sería la instrucción para que guarde los cambios y no tenga en memoria los modificacos.

He probado con la instrucción MergeChangeLog, pero hace cosas raras, a veces guarda, a veces recupera, entras y sales y el resultado varia.

Un saludo

Caro
12-08-2008, 14:15:07
Hola David, lo que yo hago, despues de hacer un LoadFromFile es asignar a la propiedad LogChanges a False, ya que viene por defecto con True. Esta propiedad controla el registro de cambios, es por eso que vemos en el archivo todos los cambios que vamos haciendo en el ClientDataSet, si le damos false, los cambios se hacen directamente. Esta propiedad no la ves en diseño, por lo que tienes que cambiarla en ejecución y siempre despues del LoadFromFile, porque cada ves que llames a ese procedimiento el LogChange se pone en True.


......
ClientDataSet.LoadFromFile;
ClientDataSet.LogChanges := False;


Saluditos