Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 04-11-2022
webmasterplc webmasterplc is offline
Miembro
 
Registrado: mar 2008
Posts: 275
Poder: 17
webmasterplc Va por buen camino
Buenas Tomando la Recomendación de Todos he ido probando, al hacer el log me di cuenta que perdía tiempo en la consulta para verificar el detalle para lo cual en vez de hacerlo tome la recomendación de Casimiro Notevi
Código Delphi [-]
  
select * from tabla1;
while not tabla1.eof  
  try
    update table 2...
  except
    insert into tabla 2...
  end;
  table1.next
end;i
y usando el log que me recomendó duilioisola pude ver lo que tardaba en cada registro en mi ultima prueba tardo 48 minutos 78.648 registros creo que estaría bien dentro de los tiempos o por lo menos se me han mejorado los tiempo considerando que antes duraba 20 min con 120 registros y por tratarse de una base de datos como dbbisam

mi Codigo
Código Delphi [-]
   while not sqnominadetalle.Eof do
                                      begin

                                      cedintegrante:=sqnominadetalle.FieldByName('FNM_INTEGRANTE').AsString;
                                      codconstante:=sqnominadetalle.FieldByName('FNM_CONSTANTE').AsString;
                                      fnmtipo:=sqnominadetalle.FieldByName('FNM_TIPO').AsInteger;
                                      fnmvalorperiodo:=sqnominadetalle.FieldByName('FNM_VALORPERIODO').AsCurrency;
                                      fnmvalordefault:=sqnominadetalle.FieldByName('FNM_VALORDEFECTO').AsCurrency;
                                      fnmdescripcion:=sqnominadetalle.FieldByName('FNM_DESCRIPCIONPERIODO').AsString;

                                      try

                                                         with squpdatenomina do
                                                         begin
                                                            ParamByName('PTIPO').AsInteger:=fnmtipo;
                                                            ParamByName('PCONSTANTE').AsString:=codconstante;
                                                            ParamByName('PINTEGRANTE').AsString:=cedintegrante;
                                                            ParamByName('PVALOR1').AsCurrency:= fnmvalordefault;
                                                            ParamByName('PVALOR2').AsCurrency:=fnmvalorperiodo;
                                                            ParamByName('PPERIODO').AsString:=fnmdescripcion;
                                                            ExecSQL;
                                                            Close;
                                                         end;
        
 Log(sqnominadetalle.FieldByName('FNM_INTEGRANTE').AsString+sqnominadetalle.FieldByName('FNM_CONSTANT  E').AsString);
                                      except
                                                              with dbtsdetallenomina do
                                                               begin

                                                                tablename:='a2NominaDetalle';
                                                                Open;
                                                                Insert;
                                                                Append;
                                                                FieldByName('FNM_TIPO').AsInteger:=fnmtipo;
                                                                FieldByName('FNM_CONSTANTE').AsString:=codconstante;
                                                                FieldByName('FNM_INTEGRANTE').AsString:=cedintegrante;
                                                                FieldByName('FNM_VALORDEFECTO').AsCurrency:= fnmvalordefault;
                                                                FieldByName('FNM_VALORPERIODO').AsCurrency:=fnmvalorperiodo;
                                                                FieldByName('FNM_DESCRIPCIONPERIODO').AsString:=fnmdescripcion;
                                                                Post;
                                                                Close;

                                              Close;
                                              end;

                                      end;
                                      sqnominadetalle.Next;
                                      end;
Responder Con Cita
 



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
funciona bien en windows 7 64b pero en XP no funciona ASAPLTDA Varios 5 06-05-2011 16:24:50
Consulta demasiado compleja oscarac SQL 7 10-03-2011 14:46:16
Query tarda demasiado en ejecutarse richy08 SQL 2 04-03-2008 18:28:47
La consulta es demasiado compleja mane Conexión con bases de datos 0 26-12-2007 10:00:07
La insercion de registros funciona pero..... ilichhernandez Conexión con bases de datos 1 22-10-2005 11:24:33


La franja horaria es GMT +2. Ahora son las 12:22:13.


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