Array
(
)

como criar arrays dinamicas?

Salsa
   - 07 fev 2006

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

#Código


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...

#Código

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



alguem sabe como faço isso?


valeuz :p


Massuda
   - 07 fev 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.


Saint
   - 07 fev 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{with}
// aqui atribui o tamanho da matriz com a quantidade de registros da sua query
Setlengh(NomesCliente,RecordCount);
while not eof do
begin{while}
NomesCliente[iContador]:=FieldbyName(´nm_cliente´).asstring;
inc(iContador);
Next;
end;{while}
end;{with}


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..


Khundalini
   - 13 mar 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


Aroldo Zanela
   - 13 mar 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.


Khundalini
   - 13 mar 2006

Aroldo,

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

Sds,

Rubem Rocha
Manaus, AM