Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema al borrar campos de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=34452)

salvanano 09-08-2006 23:28:41

Problema al borrar campos de una tabla
 
Saludos.
Mi problema esta en que quiero borrar los datos de una tabla sin tener que eliminar esta.
El codigo que tengo es:
while Form1.Table10.Eof= False do
Form1.Table10.Delete;

En otras aplicaciones me funciona perfectamente pero aqui me da el erro: "multiples records found, but only one was expected".
Que puede ser?
Gracias de antemano

PD: Labase de datos es acces y e probado con otros codigos y me sigue diciendo lo mismo

jachguate 09-08-2006 23:51:40

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.

salvanano 10-08-2006 00:15:58

Problema solucionado
 
La verdad es qeu llevas razon, sería mejor cargarse todo de un plumazo pero son manias.
Mi problema estaba en que tenia el mismo codigo repetido en otro button que habia borrado con anterioridad, pero dicha funcion no se había borrado automaticamente al eliminarlo.
Simplemente con borrarlo ha sido suficiente.
Muchas gracias


La franja horaria es GMT +2. Ahora son las 12:30:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi