|
Hola. En primer lugar te invito a leer el hilo de la [thread=971] calidad de las preguntas, pues en este caso debiste incluir información tal como la capa de acceso a datos que estas usando.
Asumiré que es BDE y por tanto, cuando vos haces un BDEDataSet.Delete, lo que se genera tras bambalinas es una sentencia delete que se lanza al servidor. Que campos irán en el delete depende de la propiedad UpdateMode del dataset. El bde, luego de la ejecución de la sentencia, verifica que solamente 1 registro se ha borrado, y si no es el caso, lanza la excepción en cuestión.
En base a este razonamiento a mi me parece que tu tabla seguramente no tiene una llave primaria y hay registros con valores duplicados.
Lo que no entiendo es por que, si lo que queres es limpiar toda la tabla, lo haces registro por registro y no simplemente lanzas una sentencia delete que se cargue todos de un plumazo. Si haces esto, seguro no habrá problemas.
Como consejo, debieras siempre definir una llave primaria para tus tablas, aún cuando no lo consideres necesario por razones de la lógica del negocio, si lo es importante si usas una capa de conexión que se base en el mismo principio del BDE.
Saludos.
|