Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 20
salvanano Va por buen camino
Smile 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
Responder Con Cita
  #2  
Antiguo 09-08-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 10-08-2006
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 20
salvanano Va por buen camino
Smile 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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Borrar n Registros de una Tabla Abel Garcia Firebird e Interbase 18 09-11-2005 14:16:23
borrar los campos de un DBGrid sin borrar los titulos de las columnas Torreblanca OOP 2 02-08-2005 00:12:52
Borrar tabla a la fuerza jmlifi Firebird e Interbase 1 18-04-2005 17:52:14
Borrar el contenido de uno o mas campos karocs SQL 3 09-08-2004 09:18:13
Borrar registro en tabla maestra y todos los de la tabla detalles correspondientes jealousy Conexión con bases de datos 7 14-10-2003 12:46:23


La franja horaria es GMT +2. Ahora son las 19:41:30.


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