Hola a todos, tengo un problema para eliminar datos de un DBGrid con multiselect en Delphi/Object Pascal, hace pocos dias que estoy estudiando este lenguaje.
En la wiki de Lazarus(ese es el ide que estoy utilizando) encontre un ejemplo de como conectar con Access.
http://wiki.lazarus.freepascal.org/MS_Access
El ejemplo de ahi muestra como eliminar un solo elemento, pero si selecciono varios ahi viene el problema, hasta el momento esto tengo:
La primera prueba solo me elimina la ultima fila seleccionada, aunque seleccione varias solo me elimina la ultima que seleccione.
Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
if SQLQuery1.RecordCount>0 then
begin
with DBGrid1.SelectedRows do
begin
SQLQuery1.Delete;
SQLQuery1.ApplyUpdates;
Form1.Caption:='DELETED';
end;
end;
end;
El segundo Intento, tengo por ejemplo 10 registros, y de prueba selecciono el primero y el ultimo para eliminar, entonces me elimina los dos primeros o los dos ultimos dependiendo cual fue el ultimo que seleccione.
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
x: Integer;
begin
with DBgrid1.SelectedRows do
if Count > 0 then
begin
for x := 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
SQLQuery1.Delete;
SQLQuery1.ApplyUpdates;
Form1.Caption:='DELETED';
end;
end;
end;
end;
Agreceria mucho si me pueden dar alguna pista de como hacer, porque ando buscando por la web y todavia no doy con la solucion que me funcione.
Por si las dudas, dejo tambien el proyecto y el exe compilado por Lazarus, por si pueden verlo talves se les hace más facil ver los errores que he cometido y decirme que deberia modificar o leer sobre.
http://www.mediafire.com/?bm040cch3agp379
Gracias de antemano.