como criar arrays dinamicas?

Delphi

07/02/2006

seguinte... tenho duas arrays que declaro no meu codigo...

    cor: array[1..3] of string = (´colour´, ´pb´, ´black and white´);

    corvalor: array[1..3] of string = (´1´, ´2´, ´2´);


quero substituir isso por dados vindo do banco de dados .. ex...


quero criar a array ... cor usando dados do banco de dados.....
se tiver ex 5 registros no banco .. queria q ele montasse pra mim...

 cor: array[1..5] of string = (´registro1´, ´registro2´, ´registro3´, ´registro4´, ´registro5´);



alguem sabe como faço isso?


valeuz :p


Salsa

Salsa

Curtidas 0

Respostas

Massuda

Massuda

07/02/2006

Você tem que escrever o código que carrega os valores do BD no array. O compilador não fará isso para você. Dê mais detalhes: qual BD, componentes de acesso ao BD, etc.


GOSTEI 0
Saint

Saint

07/02/2006

Opa..

um simples exemplo de como usar o array dinamico:

var NomesCliente: array of string;
iContador:integer;
begin
iContador:=0;
with qryClientes do
begin
// aqui atribui o tamanho da matriz com a quantidade de registros da sua query
Setlengh(NomesCliente,RecordCount);
while not eof do
begin
NomesCliente[iContador]:=FieldbyName(´nm_cliente´).asstring;
inc(iContador);
Next;
end;
end;


end;

Nesse caso eu atribui o tamanho da matriz utilizando o recordcount da query usando o setlength(matriz,quantidade) e depois varri a query atribuindo o valor de algum campo qualquer a uma posicao no array..


GOSTEI 0
Khundalini

Khundalini

07/02/2006

Eu faria esse código diferente. Sabendo que a propriedade RecordCount nem sempre retorna o que se espera, eu reformularia esse código para o seguinte:

var
NomesCliente: array of string;
begin
with qryClientes do
begin
First;
while not Eof do
begin
SetLength(NomesCliente, Length(NomesCliente) + 1);
NomesCliente[Length(NomesCliente) - 1] :=
FieldByName(´nm_cliente´).AsString;
Next;
end;
end;
end;


Sds,

Rubem Rocha
Manaus, AM


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

07/02/2006

Colega,

Não sei qual é a idéia, mas acho que o uso de CDS ou até mesmo de TStringList podem ser mais indicados para manipulação de dados.


GOSTEI 0
Khundalini

Khundalini

07/02/2006

Aroldo,

Sua sugestão é realmente bem melhor, principalmente se for necessário montar uma tabela de lookup.

Sds,

Rubem Rocha
Manaus, AM


GOSTEI 0
POSTAR