Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema al borrar registro (https://www.clubdelphi.com/foros/showthread.php?t=31907)

joanajj 21-05-2006 22:48:33

Problema al borrar registro
 
Buenas a todos, al intentar borrar con dataset1.delete el registro actual de una tabla detalle, en vez de borrar ese registro me borra todos con el mismo numero de referencia y lo que quiero es que solo borre ese registro.Lo que tengo puesto en el dataset del detalle en SQLDELETE es(Estoy probando con FIBPlus Trial):
Código SQL [-]
DELETE FROM
    facturas
WHERE
        NUMERO = :OLD_NUMERO
supongo que el error está aquí pero no veo como hacer que solo borre el registro actual.
En la clave foranea he quitado el CASCADE y nada...

vtdeleon 22-05-2006 01:09:59

Tienes que ampliar mas el rango en where. Indicarle otro campo que en su contenido sea diferente a los demas registros..

dec 22-05-2006 07:50:37

Hola,

Cita:

Empezado por joanajj
(...) en vez de borrar ese registro me borra todos con el mismo numero de referencia (...)

Pero la consulta SQL que escribiste hace exactamente lo que tiene que hacer. Es decir, tú estás diciéndole al gestor de bases de datos "borra todos los registros cuyo número de referencia este". Y el gestor de la base de datos hace lo que le dices. Ahora bien, como dice Troi, si acaso ese número de referencia puede repetirse en otros registros, entonces tendrás que basarte en otro "campo" de los registros para ser más específico.

¿No cuenta con un campo "ID" la tabla en donde se encuentran los registros que te interesan? Un campo "ID" como clave primaria y que se auto-incrementa de forma automática suele ser habitual en una tabla. Dos registros no podrán tener el mismo "ID" (se produciría una violación de la clave) de tal modo que puede utilizarse ese campo (junto con otros si es necesario) para borrar un registro en concreto.

¡Menudo rollo acabo de soltar! ¡Que Dios me perdone! Y vosotros me disculpéis. ;)

chileno 22-05-2006 16:49:27

hola..
no quiero ser pesado pero debes tomar algun apunte u/o tutorial sobre SQL,
te va ser de mucha ayuda...busca en la red...

http://mysql.conclase.net/

bueno esto es especifico para la base de datos MySQL....

joanajj 22-05-2006 19:40:52

Gracias por la respuesta
 
Si, creo que tenéis razón, probaré la solución que me habéis dado, ya que efectivamente tengo un campo autoincrementable primario y estoy un poco verde y no caí en el detalle de utilizar ese campo para hacer el borrado selectivo, en cualquier caso tomo nota de lo del curso, creo que me hace falta. Estoy emprezando con Firebird debido a la desgracia de usar tablas Access hiperlentas...


Saludos...


La franja horaria es GMT +2. Ahora son las 05:08:07.

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