Cita:
Empezado por Lenny
Hay alguna forma de recorrer todo el DBGrid (Previamente Filtrado) y copiar a una tabla solo el contenido de este??? y eventualente borrar el contenido del DBGrid????De antemano muchas gracias... espero no estar abusando... PD Utilizo Delphi 2010, Zeos y MySQL
|
Hola Lenny.
Creo que tenés un error conceptual, lo que está filtrado no es el DBGrid, es la Tabla.
Para realizar lo que deseas tenés que tener dos tablas declaradas con la misma estructura.
Suponiendo para el ejemplo que tus tablas sean Tabla1 y Tabla2 y estén ya abiertas,
el código para copiar a Tabla2 el resultado que se filtró en Tabla1, podría ser:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
begin
with Table1 do
begin
Filtered:= False;
Filter:= 'Campo ='+QuotedStr('Valor_a_Filtrar');
Filtered:= True;
First;
while not Eof do
begin
Table2.Append;
for i:= 0 to FieldCount-1 do
Table2.Fields[i]:= Table1.Fields[i];
Table2.Post;
Table1.Next;
end;
end;
end;
Por supuesto con una sentencia SQL se hace de forma mucho más rápida y sencilla (en el foro tenés muchos ejemplos ); pero creo que este deja más en claro donde son aplicados los filtros.
Saludos.