Ver Mensaje Individual
  #1  
Antiguo 16-11-2006
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Reputación: 23
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