hola, en realidad no tiene que ver con que sea un TSLTable o TSLQuery, ese no es el problema, tampoco lo es el ClientDataset.
La cuestión es que el conjunto de datos del ClientDataset solo se carga en memoria y no tiene forma alguna de saber si hay o nó una clave duplicada hasta que la actualización o inserción hayan ido hasta la propia base de datos, es por eso que la excepción no se dispara en Post sinó en ApplyUpdates.
Lo que debes hacer es manejar la excepción en OnReconcileError y la acción a realizar es raAbort que no te va a borrar absolutamente nada.
Espero te sirva de algo.
|