Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2006
CamiloU CamiloU is offline
Miembro
 
Registrado: dic 2005
Ubicación: Sincelejo - COlombia
Posts: 59
Poder: 19
CamiloU Va por buen camino
Ayuda urgente

Buenos Dias.
Solicito me colaboren con el siguiente problema: Tengo una tabla que maneja los campos cedula y valor, entre otros. La cedula puede estar repetida pero necesito agruparla con la suma de todos los valores pertenecientes a ella. Considero que el codigo esta bien y cuando pruebo con valores pequeños (1000 registros) funciona perfectamente. Cuando ingreso el valor total de registros (260000 registros), nunca termina. Podrian colaborarme a buscar una solucion a mi problema. Anexo el codigo que estoy utilizando. Muchas gracias.
Código Delphi [-]
 
procedure TForm1.ListadoClick(Sender: TObject);

var
  cont, n, i : integer;
  Tot : Lista;
  Valor : Parcial;
  val, totalito : real;
  ced, fsalario : string;
  encontrado, encuentra : boolean;

begin
  TCesantias2005.First;
  cont := 0;
 
  while (Not TCesantias2005.Eof) do
    begin
      encontrado := false;
      n := 0;
      while n < cont do
        begin
          n := n + 1;
          if TCesantias2005.fields[0].Value = Tot[n] then
            begin
              encontrado := true;
              fsalario := TCesantias2005.fields[3].Value;
              if (fsalario <> '50') and (fsalario <> '90') and (fsalario <> '150')
                 and (fsalario <> '230') and (fsalario <> '310') and
                 (fsalario <> '230') then
                begin
                  val := TCesantias2005.Fields[2].Value;
                  Valor[cont] := Valor[cont] + val;
                end;
            end;
        end;
 
      if encontrado = false then
        begin
          cont := cont + 1;
          Tot[cont] := TCesantias2005.Fields[0].Value;
          Valor[cont] := TCesantias2005.Fields[2].Value;
        end;
      TCesantias2005.Next;
    end;
 
  contador.Text := inttostr(cont);
  n := 0;
 
  while n < cont do
    begin
      n := n + 1;
      ced := Tot[n];
      totalito := Valor[n] / 12;
      TInter.Append;
      TInter.Fields[0].Value := ced;
      TInter.Fields[1].Value := totalito;
      TInter.Post;
    end;

Lista es un arreglo de 1 a 50000 de string;
Parcial es un arreglo de 1 a 50000 de real.

No se me ocurrio otra forma para revisar si la cedula existia o no y para ir realizando la sumatoria de los valores.

Agradezco mucho cualquier colaboracion.

Última edición por marcoszorrilla fecha: 02-02-2006 a las 15:16:23.
Responder Con Cita
  #2  
Antiguo 02-02-2006
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Por favor, no usar títulos para los hilos como el que acabas de poner, "Ayuda urgente", porque no son nada descriptivos y no servirían más tarde para realizar una búsqueda en el foro si alguien tuviera tu mismo problema. Además, va contra las normas de la Guía de estilo.

Saludos!
Responder Con Cita
  #3  
Antiguo 02-02-2006
CamiloU CamiloU is offline
Miembro
 
Registrado: dic 2005
Ubicación: Sincelejo - COlombia
Posts: 59
Poder: 19
CamiloU Va por buen camino
Si, tienes razon. Pido disculpas pero no se me ocurrio un titulo que pudiera resumir el inconveniente que se presenta.
Responder Con Cita
  #4  
Antiguo 02-02-2006
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 21
Osorio Va por buen camino
prueba con un query

Una sugerencia es que uses un TQuery


Con una consulta como esta:

Código Delphi [-]
          SELECT CEDULA, SUM(VALOR)
          FROM LASUPERTABLA
          GROUP BY CEDULA

Saludos
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
ayuda urgente sobre como actualizar base de datos de paradox Mairel Tablas planas 2 02-12-2006 19:54:14
Ayuda urgente con manejo de ventanas y validación de usuario TrUnkS Varios 1 27-12-2005 09:04:22
La increíble tecla F1 en Delphi dec Varios 1 31-08-2005 22:26:45
Urgente..Insert en tablas interbase para delphi....ayuda por favor Aser Firebird e Interbase 6 29-04-2005 02:55:57
Ayuda con DLL's...(CreateOleObject)...urgente. slacas75 Providers 1 19-09-2004 03:32:33


La franja horaria es GMT +2. Ahora son las 12:01:31.


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