Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Delete de los datos de columnas no de tabla (https://www.clubdelphi.com/foros/showthread.php?t=51725)

FGarcia 27-12-2007 03:18:26

Delete de los datos de columnas no de tabla
 
Hola! por aqui aumentando mis mensajes!!:D

tengo una tabla con esta estructura:

Código:

===========================================
Consecutivo | ID | Cuantos | Total | GCuantos | GTotal |
===========================================

He intentado borrar solamente los datos de las columnas Cuantos y Total sin embargo me borra todos los datos de la BD.

Código SQL [-]
//Borra los datos de Total en la tabla Totales
procedure TDataCnx.BorraTotales;
begin
  with ADOCommand do
    begin
      CommandText := 'DELETE Cuantos, Total FROM Totales ' +
                     'WHERE ((ID =' + QuotedStr('1') +
                     ') AND (ID =' + QuotedStr('2') +
                     ') AND (ID =' + QuotedStr('3') +
                     ') AND (ID =' + QuotedStr('4') + '))';
      Execute;
    end;
    
end;

He probado en vez de AND con OR y me borra todo. En que estoy mal?

Gracias por la ayuda

sépoco 27-12-2007 03:35:39

La sentencia para borrar es una y es así:
DELETE FROM nombre_tabla
WHERE campo = "XXXXX"


Por lo anterior el Delete sólo borra la tupla completa de la tabla y dependerá de la condición que le asignes para borrar uno o más registros.

No puedes borrar algunos campos y otros no. Es un tema de restrincciones de índices y asignaciones interiores.

jachguate 27-12-2007 04:44:55

Hola.

Quizás lo que querés es establecer el valor de dichos campos a null. En ese caso, lo que falta es un update:

Código SQL [-]
update Totales
   set Cuantos = null,
       Total = null
 where id in ('1', '2', '3', '4');

Hasta luego.

;)

FGarcia 28-12-2007 01:40:56

Gracias Juan Antonio! Eso era lo que queria, bueno en realidad poner a cero todos los datos, solo cambie el null por 0 y listo. Un error de interpretacion entre DELETE y volver los valores a 0 (UPDATE y SET).


La franja horaria es GMT +2. Ahora son las 04:57:49.

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