Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Copiar todo el resultado de un Filtro (DBGrid) en Tabla

Bueno, esa es la pregunta, si pudieran darme una mano, Como puedo copiar el resultado de un filtro (Almacenado en un DBGrid) a la base de datos??? Necesito filtrar productos asociados a una OT y estos copiarlos a otra tabla y eventualemnte borrar el contenido del filtro, para copiar un solo registro simepre lo hago asi:


Código Delphi [-]
procedure TOTrabajo.Button4Click(Sender: TObject);
begin
  if Application.MessageBox('La orden de Trabajo será enviada a Producción.','PRODUCCION',mb_Ok +
  mb_IconQuestion)= idOk then
BDatos.TOTPENDIENTE.Insert;
BDatos.TOTPENDIENTE.FieldbyName('OT').AsString := BDatos.TOTHISTORICO.FieldbyName('OT').AsString;
BDatos.TOTPENDIENTE.FieldbyName('RUT').AsString := BDatos.TOTHISTORICO.FieldbyName('RUT').AsString;
BDatos.TOTPENDIENTE.FieldbyName('CLIENTE').AsString := BDatos.TOTHISTORICO.FieldbyName('CLIENTE').AsString;
BDatos.TOTPENDIENTE.Post;
BDATOS.TOTPRODUCCION.Refresh;

end;
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
Responder Con Cita
  #2  
Antiguo 15-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Lenny Ver Mensaje
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.

Última edición por ecfisa fecha: 15-10-2010 a las 01:01:38.
Responder Con Cita
  #3  
Antiguo 15-10-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Red face

Gracias Ecfisa, no es primera vez me sacas de un apuro, reviso y te cuento como me fue... Te pasaste!!!
Responder Con Cita
  #4  
Antiguo 15-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Lenny, revisá los ejemplos para hacerlo con SQL, te va a sorprender la diferencia de eficiencia y velocidad entre ambos.

Por ejemplo aca .

Saludos.

Última edición por ecfisa fecha: 15-10-2010 a las 01:18:17.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
FileStream pa copiar todo un directorio o carpeta Oxa78 Varios 0 23-03-2007 00:09:39
Como copiar todo el contenido de un directorio? JuanErasmo API de Windows 2 28-04-2006 08:54:26
Como copiar todo el contenido de un directorio? JuanErasmo C++ Builder 5 01-02-2006 20:18:19
cxGrid opcion dejar todo el resultado en memoria?? sakuragi OOP 0 26-07-2005 16:38:27
Como guardar en una tabla el resultado de un query mostrado en un dbgrid luisreg OOP 3 09-10-2003 01:35:01


La franja horaria es GMT +2. Ahora son las 12:20:00.


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
Copyright 1996-2007 Club Delphi