Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2007
KAYO KAYO is offline
Miembro
 
Registrado: jul 2006
Posts: 78
Poder: 18
KAYO Va por buen camino
Rutina muy lenta...

Por alguna razon la rutina que os detallo va superlenta....., MDO con Firebird , Delphi 7 en XP.

estoy utilizando TMDOTable y tarda mas de 30 minutos en actualizar 900 registro con la siguiente rutina.

Agradezco vuestra paciencia en darme alguna pista de como optimizar esta rutina......

Código Delphi [-]
 
    {Desactivo el MasterDetail}
    Dm.TListasClientes.MasterSource := nil;
    {filtro la tabla para que solo se contabilicen los registros NO ENTREGADOS}
    Dm.TListasClientes.Filter := 'RECIBIDO = '+CHR(39)+'0'+CHR(39);
    Dm.TListasClientes.Filtered := True;
    DM.TListasClientes.Open;
    DM.TListasClientes.Last;
    {me voy al ultimo registro porque si no me aparece como si la base tuviese 0 registros para iniciar el progressbar}
    ProgressBar1.Min :=  0;
    ProgressBar1.Max :=   DM.TListasClientes.RecordCount;
    i := 0;
    DM.TListasClientes.First;
    while not DM.TListasClientes.eof do begin
           i := i +1;
           ProgressBar1.Position := i;
           {verifico si existe en la base si existe para incrementar el aticulo y si no lo incluye}
              if DM.TPedidosDetallados.Locate('NUMERO',DM.TListasClientesNumero.AsString,[loPartialKey]) then begin
                 DM.TPedidosDetallados.Edit;
                 DM.TPedidosDetalladosCantidad.AsInteger := DM.TPedidosDetalladosCantidad.AsInteger + (DM.TListasClientesCantidad.AsInteger-DM.TListasClientesCantidadRecibido.AsInteger);
                 DM.TPedidosDetalladosTotal.AsCurrency := DM.TPedidosDetalladosCantidad.AsInteger * DM.TPedidosDetalladosCosto.AsCurrency;
                 end
             else begin
                {busco en la base de articulos para completar datos como precios y costos}
                DM.TArticulos.Locate('Numero',DM.TListasClientesNumero.AsString,[loPartialKey]);
                DM.TPedidosDetallados.Insert;
                DM.TPedidosDetalladosNumero.AsString := DM.TListasClientesNumero.AsString;
                DM.TPedidosDetalladosCantidad.AsInteger := DM.TListasClientesCantidad.AsInteger-DM.TListasClientesCantidadRecibido.AsInteger;
                DM.TPedidosDetalladosEditorial.AsInteger := DM.TArticulosEditorial.AsInteger;
                DM.TPedidosDetalladosDepartamento.AsInteger := DM.TArticulosDepartamento.AsInteger;
                DM.TPedidosDetalladosProveedor.AsString := DM.TArticulosProveedor.AsString;
                DM.TPedidosDetalladosLinea.AsString := DM.TArticulosLinea.AsString;
                DM.TPedidosDetalladosCurso.AsString := DM.TArticulosCurso.AsString;
                DM.TPedidosDetalladosDescripcion.AsString := DM.TArticulosDescripcion.AsString;
                DM.TPedidosDetalladosCosto.AsCurrency := DM.TArticulosCosto.AsCurrency;
                DM.TPedidosDetalladosTotal.AsCurrency := DM.TPedidosDetalladosCantidad.AsInteger * DM.TPedidosDetalladosCosto.AsCurrency;
                end;
          DM.TListasClientes.Next;
    end;
    DM.TListasClientes.Close;
    DM.TListasClientes.Filtered  := False;
    ProgressBar1.Position := 0;


ESPERO SE ENTIENDA!!!!

Última edición por dec fecha: 03-07-2007 a las 17:08:44.
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
Ayuda con consulta lenta, lenta, lenta Gregory Mazon Firebird e Interbase 22 27-06-2007 09:56:38
Problemas con rutina seek JF Sebastian OOP 0 03-02-2007 13:44:20
Rutina de digito verificador tulio Varios 4 09-08-2006 17:43:18
No sale rutina SQl ............ Coco_jac SQL 2 30-11-2005 16:52:44
Impresion lenta, muy lenta... Perio Impresión 2 20-05-2005 13:10:00


La franja horaria es GMT +2. Ahora son las 19:47:55.


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