![]() |
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 |
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. |
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