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
  #1  
Antiguo 28-10-2022
webmasterplc webmasterplc is offline
Miembro
 
Registrado: mar 2008
Posts: 275
Poder: 17
webmasterplc Va por buen camino
Mi Consulta SQL Funciona pero tarda demasiado

Buenas estoy realizando un procedimiento para consolidar los datos de varias tablas en un sola, todas tiene la misma estructura, el problema es que el proceso tarda demasiado y mientras lo hace me cuelga la maquina y no se por donde va (uso tablas dbisam, no las uso por eleccion)
mi codigo es este
Código Delphi [-]
 
with sqnominadetalle do
  begin
    close;
    SQL.Clear;
    SQL.Add('SELECT * FROM a2NominaDetalle');
    ExecSQL;
    sqnominadetalle.First;
    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;
      with sqverificardetalle do
      begin
        close;
        ParamByName('PINTEGRANTE').AsString := cedintegrante;
        ParamByName('PCONSTANTE').AsString := codconstante;
        ExecSQL;
        if not sqverificardetalle.IsEmpty then
        begin
          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

        end
        else
        begin
          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;
          end;
        end;
        close;
      end;
      // ShowMessage('Net');
      sqnominadetalle.Next;
    end;

    with sqstatus do
    begin
      close;
      SQL.Clear;
      SQL.Add('UPDATE SEDES SET SED_STATUS = :PSTATUS');
      SQL.Add('WHERE ID_SEDE=:PIDSEDE');
      ParamByName('PIDSEDE').AsString := codsede;
      ParamByName('PSTATUS').AsInteger := 2;
      ExecSQL;
    end;
  end;

Última edición por Neftali [Germán.Estévez] fecha: 28-10-2022 a las 08:57:46. Razón: Corregir sintaxis del mensaje
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 07:08:04.


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