Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2006
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Poder: 21
jplj Va por buen camino
Problemas al eliminar registros con TADOConnection

Hola:

Estoy empleando un TADOCommand para mandar comandos a una tabla llamada Registros, sus campos entre otros son :

Id: numérico sin duplicados
nombre: String.

La forma de empelear TADOCommand es ...

Código Delphi [-]
         Comando_1.CommandText:= strSQL
         Comando_1.Parameters[0].Value:= ... ;
                        ...
         Comando_1.Parameters[n].Value:= ... ;
         Comando_1.Execute;

De esta forma hasta ahora he mandado comandos de insercción, actulización y eliminación sin problemas.

Ahora pretendo eliminar aquellos registros cuyo Id sea un valor determinado o cuyos nombres se correspondan con una mascara dada. Para ello he probado con varias instrucciones:

La primera fue:
Código SQL [-]
DELETE Registros.* FROM Registros WHERE (Id = :P0) OR (nombre LIKE :P1)

Al comprobar que sólo eliminaba el registro que cumplia la primera condición, y tras varias pruebas dedidí ponerla literal:

Código SQL [-]
DELETE Registros.* FROM Registros WHERE (Id =1200) OR (nombre LIKE "zz_*")

Obteniendo identico resultado, me elimina el registro cuyo id = 1200.

Otra que me producia lo mismo fue:
Código SQL [-]
DELETE Registros.* FROM Registros WHERE (Id =1200) OR (Id IN (SELECT Id FROM Registos WHERE LIKE "zz_*"))

He probado con
Código SQL [-]
DELETE Registros.* FROM Registros WHERE (nombre LIKE "zz_*")

Y en este caso no me elimina ninguno.


Por último y para comprobar si por alguna razón no se podían eliminar más de un registro a la vez ( no me pregunteís porqué he llegado a pensar eso):
Código SQL [-]
DELETE Registros.* FROM Registros WHERE (Id=1200) OR (Id=1201)
En este caso me elimina los dos.

A todo esto, desde Acces he comprobado cada una de las consultas y daban los resultados esperados. Borraban todos los registros que cumplian una de las dos condiciones.

¿Alguna sugerencia?

Gracias de antemano.

Escusas por el título, no es TADOConnection sino TADOCommand.





Base de Datos: Microsof Acces 2000 y 97
__________________
Sonríe. Mañana puede ser peor.

Última edición por jplj fecha: 16-11-2006 a las 15:22:51.
Responder Con Cita
  #2  
Antiguo 16-11-2006
Avatar de aom
aom aom is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 106
Poder: 22
aom Va por buen camino
Hola,
Código Delphi [-]
DELETE Registros.* FROM Registros WHERE (Id =1200) OR (nombre LIKE ""zz_*")

Creo que el problema está con el asterisco (*). Cuando trabajas con los componentes ADO creo que hay que utilizar % . Tu consulta sería

Código Delphi [-]
DELETE Registros.* FROM Registros WHERE (Id =1200) OR (nombre LIKE ""zz_%")

Saludos
__________________
Más se perdió en la guerra... y volvieron cantando
Responder Con Cita
  #3  
Antiguo 16-11-2006
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Poder: 21
jplj Va por buen camino
, no ...
__________________
Sonríe. Mañana puede ser peor.
Responder Con Cita
  #4  
Antiguo 17-11-2006
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Poder: 21
jplj Va por buen camino
Muchas gracias aom.

Hoy con la "mente" despejada he comprobado que aom estaba en lo cierto.

De nuevo gracias.
__________________
Sonríe. Mañana puede ser peor.
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
Eliminar y actualizar registros con SQL Jheysson13 SQL 3 28-07-2006 22:32:01
Problemas con un TADOConnection en un DataModule Holderhek Tablas planas 5 08-02-2005 18:31:34
Eliminar registros de un archivo xml jgutti Varios 0 25-05-2004 22:51:38
Eliminar Registros Duplicados ? Jvilomar Firebird e Interbase 14 16-03-2004 22:14:35
Eliminar algunos registros con sql miguelb SQL 4 19-09-2003 16:11:43


La franja horaria es GMT +2. Ahora son las 23:56:07.


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