FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con DBGrid
Hola foristas, miren tengo el siguiente codigo.
procedure TForm1.Button1Click(Sender: TObject); var LiReg, LiCont : integer; begin LiReg := Table1.RecordCount; LiCont := 0; while LiCont <= LiReg do begin DBGrid1.SelectedRows.CurrentRowSelected := True; borrar; LiCont := LiCont + 1; Table1.Next; end; end; procedure TForm1.borrar; var contador : integer; begin if DBGrid1.SelectedRows.Count > 0 then With Table1 Do For Contador := 0 to DBGrid1.SelectedRows.Count - 1 do begin GotoBookMark(pointer(DBGrid1.SelectedRows.Items[Contador])); table1.Delete; end; end; Mi proposito con este es a medida que seleciono todos los registros de una tabla los elimino, el problema es que no los elimina todos debido a que llega un momento en que en el procemiento borrar (if DBGrid1.SelectedRows.Count > 0 then) Count es igual a 2 sabiendo que se a seleccionado 1 solo y por supuesto saca un error donde dice que registro no encontrado. Les pido me colaboren saliendo de este problema. Gracias.
__________________
Siempre hay un primer momento para todo. |
#2
|
||||
|
||||
Para eliminar todos es mucho más fácil:
MiTabla.EmptyTable; Tienes que tener uso exclusivo sobre la misma. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Gracias por la respuesta, existe un pero y es que a medida que voy a eliminar debo de chequiar algo en cada registro que se selecciona automaticamente, alguien tiene otra respuesta a esta inquietud.
Chauuuuuu
__________________
Siempre hay un primer momento para todo. |
#4
|
||||
|
||||
En este caso puedes borrar mediante una consulta SQL, que te va resultar mucho más fácil de implementar y mucho más rápido.
Delete Where xxx = lo que sea. Y luego ejecutas la consulta. Con ExecSql, aunque esto dependerá del tipo de tablas que estes utilizando. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
Gracias por su interes en el tema, se puede dar por terminado este hilo.
CHAUUUUUUUUUUU
__________________
Siempre hay un primer momento para todo. |
#6
|
||||
|
||||
no se si te sirva de algo.
lo puedes hacercon un while not while not table1.eof do begin table1.delete; next; end; first; asi puedes eliminar solo lo que necesitas mediante un filtro,o toda la tabla,y almacenas lo que necesites en variables. |
#7
|
|||
|
|||
Solo un comentario a la respuesta de CarlosHernandez.
El Next de dentro del bucle sobraría |
|
|
|