Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 03-08-2018
marco3k marco3k is offline
Miembro
 
Registrado: feb 2015
Posts: 106
Poder: 12
marco3k Va por buen camino
Actualizar varias filas en un ClientDataSet desconectado.

Hola compañeros, despues de analizar una recomendacion en este foro que hizo Al Gonzáles en este Hilo "clubdelphi.com/foros/showthread.php?t=85143&page=2" y cambie la propiedad LogChanges a False del ClientDataSet. Tambien cambie el acceso a los campos como indica el compañero Mick en este Hilo "clubdelphi.com/foros/showthread.php?t=21764".

Hice los cambios respectivos y la velocidad de ejecución de la rutina en Delphi bajo de 15 segundos a 3 segundos. El código quedo asi:

Código Delphi [-]
procedure TLogicaBoletaPago.VerBoleta;
var var_cod_boleta_tmp,var_cod_boleta : string;
begin
  if TListaBoletaTmp.RecordCount>0 then
  begin
    TListado.LogChanges := False; //cambio 1
    TListado.Filter := '';
    TListado.Filtered := False;
    TListado.First;
    repeat
      TListado.Edit;
      TListadoSELECCION.Value := 0; //El acceso directo a campos, cambio 2
      TListado.Post;
      TListado.Next;
    until TListado.Eof;
    TListado.First;
    //***
    TListaBoletaTmp.First;
    while TListaBoletaTmp.Eof = False do
    begin
      if TListaBoletaTmpSELECCION.Value=True then
      begin
        var_cod_boleta_tmp := TListaBoletaTmpANIO.Value +
        TListaBoletaTmpMES.Value +
        TListaBoletaTmpMES_SUP.Value +
        TListaBoletaTmpDNI.Value +
        TListaBoletaTmpTIPO_PLA.Value +
        TListaBoletaTmpNRO_BOL.Value;
        TListado.First;
        while TListado.Eof = False do
        begin
          var_cod_boleta := TListadoANIO.Value +
          TListadoMES.Value +
          TListadoMES_SUP.Value +
          trim(TListadoDNI.Value) +
          TListadoTIPO_PLA.Value +
          TListadoNRO_BOL.Value;
          if var_cod_boleta_tmp = var_cod_boleta then
          begin
            TListado.Edit;
            TListadoSELECCION.Value := 1;
            TListado.Post;
          end;
          TListado.Next;
        end;
      end;
      TListaBoletaTmp.Next;
    end;
  end;
  TListaBoletaTmp.First;
  TListado.Filter := '[seleccion] = 1';
  TListado.Filtered := True;
end;
Aun asi la version de Visual FoxPro con muchos registros se demora 1 seg a lo mucho, si son pocos registros es milisegundos.
Hay algo que menciono Al Gonzáles mencionó en el Hilo que comente lineas arriba:
Cita:
...agregar los registros mediante llamadas de bajo nivel a las interfaces DSBase y DSCursor que contiene el objeto, es decir, ejecutando directamente rutinas de MIDAS. Con ello te ahorras un montón de trámites que la clase hereda de TDataSet.
Tendras Al Gonzáles o algún miembro de este foro algún ejemplo de como ejecutar rutinas MIDAS para reducir a 1 seg la ejecución de la rutina. O alguna otra recomendación que me pudieran brindar y por lo que busque no hay nada equivalente a "REPLACE ALL WITH 0" en Delphi.

Gracias de antemano si me pudieran brindar alguna ayuda.


PD: No puedo agredar hipervínculos asi que puse las direcciones sin el prefijo.
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
Actualizar registros de ClientDataSet oscarac OOP 1 31-01-2018 10:01:00
Actualizar datos al clientdataset escorpionrojo43 Conexión con bases de datos 1 14-08-2013 17:51:02
Actualizar ClientDataSet usando TADOQuery y DataSetProvider Walterio Providers 4 27-11-2012 20:01:00
Problema al actualizar con ClientDataSet con campos calculados LEVV Conexión con bases de datos 5 13-01-2012 23:29:24
Problemas al actualizar campos numéricos con ClientDataSet e IBX PINO72 Conexión con bases de datos 0 17-03-2007 01:37:44


La franja horaria es GMT +2. Ahora son las 09:29:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi