Dúvida no loop

Delphi

07/04/2006

olá amigos...

Estou com a seguinte dúvida... tenho um loop onde o qual a minha lista codigos ja inicializa direto com todos os objetos.

este e o código
lista e um array of integer so que na minha inicialização a lista ja fica toda preenchida!


for i:= 0 to DMDados.ADOQryTeste.RecordCount do
begin
lista[i] := DMDados.ADOQryTeste.FieldByName(´CD_MATRICULA´).Value;
end;


Alexespina

Alexespina

Curtidas 0

Respostas

Edilcimar

Edilcimar

07/04/2006

mas se vc manda fazer ao iniciar é lógico que a matriz seja preenchida


GOSTEI 0
Alexespina

Alexespina

07/04/2006

mas eu gostaria que ela leia um a um e armazenado na minha variável.... vc sabe como eu faço?


GOSTEI 0
Edilcimar

Edilcimar

07/04/2006

use a matriz, mas não coloque para executar ao iniciar e sim no comando de um botão por exemplo, aí então vc executa o procedimento que quiser


GOSTEI 0
Alexespina

Alexespina

07/04/2006

dai todo o código

mas apenas eu quero que o [i] receba um a um mas naum ta dando certo...

por favor algume poderia me dizer aonde ta este erro?



with DMDados.ADOQryTeste do
begin
close;
Parameters.ParamByName(´CD_TURMA´).Value := DBLkpCmbBxTurma.KeyValue;
Parameters.ParamByName(´CD_TURNO´).Value := DBLkpCmbBxTurno.KeyValue;
Parameters.ParamByName(´CD_SEDE´).Value := DBLkpCmbBxSede.KeyValue;
open;
end;
---------------- aki em baixo e que o bicho pega--------------------------
eu so quero receber um a um registro e armazenando na minha variável i

for i:= 0 to DMDados.ADOQryTeste.RecordCount do
begin
lista[i] := DMDados.ADOQryTeste.FieldByName(´CD_MATRICULA´).Value;
end;


GOSTEI 0
Edilcimar

Edilcimar

07/04/2006

for i:= 0 to DMDados.ADOQryTeste.RecordCount do
begin
lista[i] := DMDados.ADOQryTeste.FieldByName(´CD_MATRICULA´).Value;
end;
1) está faltando dimensionar o array -> setlength(Lista,AdoQryTeste.RecordCount)
2) em vez do for faça o loop dentro da query, while not eof para ir dando valores a lista[i] e vá incrementando o i


GOSTEI 0
Alexespina

Alexespina

07/04/2006

Não deu certo ....

será que vc poderia me dar uma dica como eu poderia fazer este implementação usando o FOR.

Desdede já obg pela sua atenção


GOSTEI 0
Eniorm

Eniorm

07/04/2006

DMDados.ADOQryTeste.Open;
i := 0;
while not DMDados.ADOQryTeste.Eof do begin
  lista[i] := DMDados.ADOQryTeste.FieldByName(´CD_MATRICULA´).Value;
  Inc(i);
  DMDados.ADOQryTeste.Next;
end;



GOSTEI 0
POSTAR