Ver Mensaje Individual
  #4  
Antiguo 14-06-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Reputación: 21
VRO Va por buen camino
Te voy a poner un ejemplo de lo que tengo y de lo que quiero:

Lo que tengo hecho:

Código Delphi [-]
       Query.sql.clear;
       Query.sql.add('select count(*) as num,numero,fecha_actual from tPDA where fecha_actual is not null group by numero,fecha_actual');
       Query.open;
 
       y:=0;

       SetLength(MPDA,Query.fieldbyname('num').asinteger);
       while Query.eof=false do
        begin
           y:=y+1;
           MPDA[y].numero:=Query.fieldbyname('numero').asInteger;
           MPDA[y].fecha:=Query.fieldbyname('fecha_actual').AsDateTime;
           query.Next;
        end;

Y lo que quiero es meter el SetLength dentro del while he ir dandole valores, de la siguiente forma:

Código Delphi [-]
       Query.sql.clear;
       Query.sql.add('select count(*) as num,numero,fecha_actual from tPDA where fecha_actual is not null group by numero,fecha_actual');
       Query.open;
 
       y:=0;

       while Query.eof=false do
        begin
           y:=y+1;
           SetLength(MPDA,y);

           MPDA[y].numero:=Query.fieldbyname('numero').asInteger;
           MPDA[y].fecha:=Query.fieldbyname('fecha_actual').AsDateTime;
           query.Next;
        end;

Pretendo ir ampliando el array ha medida que voy insertando através de la variable y, pero que me ocurre que sólo me matiene el valor correcto del último registro insertado, el resto me pasa los valores a 0.

¿A qué se debe esto? y como puedo solucionarlo?

Gracias por todo a todos.
Responder Con Cita