Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Eliminar de bd seleccionado de listview (https://www.clubdelphi.com/foros/showthread.php?t=82834)

jonydread 18-04-2013 03:36:25

Eliminar de bd seleccionado de listview
 
amigos estoy tratando de eliminar de mi base de datos el item seleccionado de listview
estoy tratando asi y me salen errores, en san google no he encontrado nada :confused:
mi codigo
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
begin

Zquery1.sql.text := 'delete from datos values (:fecha, :area,:tipo, :detalle,:id)';
ZQuery1.Locate('fecha' , 'listview1.Selected.Caption', [loCaseInsensitive, loPartialKey] );
ZQuery1.Locate('area' , 'listview1.Selected.SubItems[1]', [loCaseInsensitive, loPartialKey] );
ZQuery1.Locate('tipo' , 'listview1.Selected.SubItems[1]', [loCaseInsensitive, loPartialKey] );
ZQuery1.Locate('detalle' , 'listview1.Selected.SubItems[1]', [loCaseInsensitive, loPartialKey] );
ZQuery1.ExecSQL;
zQuery1.SQL.Clear;
  end;

saludos!

Casimiro Notevi 18-04-2013 03:49:19

Esa no es la sintaxis para "delete":

Código SQL [-]
DELETE FROM Table1
WHERE Some_Column = Some_Value

jonydread 18-04-2013 05:55:49

tienes toda la razon funciona, como recupero el valor de la columna? lo he hecho asi y de otras formas pero no me funciona :mad:
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
var
valor1: string;
begin
valor1:=listview1.Selected.SubItems[1] ;
Zquery1.sql.text := 'delete from Datos WHERE area = "valor1" ';

ZQuery1.ExecSQL;
zQuery1.SQL.Clear;
  end;

Casimiro Notevi 18-04-2013 13:09:58

No recuerdo de memoria exactamente el método, haz una búsqueda por "listview", encontrarás montones de temas similares y podrás resolverlo.

jonydread 19-04-2013 04:55:36

ahora lo realizo asi
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);

begin
Zquery1.sql.text := 'delete from Datos WHERE tipo = :tipo';
ZQuery1.ParamByName('tipo').Value := Listview1.Selected.SubItems[2];
ZQuery1.ExecSQL;
zQuery1.SQL.Clear;
  end;
segun este post

la base de datos la cargo a mi listview mediante formcreate, puedo eliminar de la listview pero lo que requiero es borrar de la base de datos, existe alguna otra forma, pensando que a futuro hare la listview a virtual(cuando aprenda para hacerlo).

saludos

jonydread 24-04-2013 04:41:32

amigos aun no lo logro trato asi
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);

begin
zquery1.SQL.Text := 'SELECT * FROM Datos';
zquery1.Open;
while not zquery1.Eof do
begin
Zquery1.sql.text := 'delete  from Datos WHERE tipo = :tipo';
zQuery1.fieldbyname('tipo').AsString := listview1.Selected.SubItems[2];
ZQuery1.ExecSQL;
zQuery1.SQL.Clear;
end;
  end;
me dice Zquery1: Field 'tipo' not found:confused::confused:
alguna idea??

Casimiro Notevi 24-04-2013 11:23:47

Cita:

Empezado por jonydread (Mensaje 459172)
me dice Zquery1: Field 'tipo' not found
alguna idea??

No existe el campo.

Será difícil ayudarte si no explicas más, no podemos ver tu ordenador :confused:

jonydread 25-04-2013 02:24:05

ise una prueba si estaba recogiendo bien el dato mediande un showmessage y hay estaba mi problema no lo estaba recogiendo bien
use parambyname
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);

begin
zquery1.SQL.Text := 'SELECT * FROM Datos';
zquery1.Open;
while not zquery1.Eof do
begin
Zquery1.sql.text := 'delete  from Datos WHERE tipo = :tipo';
zQuery1.parambyname('tipo').AsString := listview1.Selected.SubItems[1];
ZQuery1.ExecSQL;
zQuery1.SQL.Clear;
end;
  end;
saludos y gracias!!

ecfisa 25-04-2013 03:00:01

Hola jonydread.

Es innecesario recorrer la tabla, este código:
Código Delphi [-]
...
begin
  Zquery1.Close;
  Zquery1.SQL.Text := 'DELETE FROM DATOS WHERE TIPO = :PTIPO';
  Zquery1.ParamByName('PTIPO').AsString :=  listview1.Selected.SubItems[1];
  Zquery1.ExecSQL;
end;
borra todos los registros de la tabla DATOS cuyos campos TIPO tengan un valor igual al contenido en listview1.Selected.SubItems[1].

Saludos.

jonydread 25-04-2013 03:35:50

gracias optimizare eso

Saludos


La franja horaria es GMT +2. Ahora son las 09:50:52.

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