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 Buscar Temas de Hoy Marcar Foros Como Leídos

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: 22
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 18:13:26.


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