Access Violation - O problema está no Array

16/03/2003

0

eh pessoal!!!

Acho que o meu problema estah em alguma coisa errada que eu fiz na declaração dos arrays...
:oops:

Tipo... testei de todo jeito o codigo:

------------------------------
cont:=1;
With ClientDataSetItens do
begin
first;

While not eof do
begin
Produto[cont]:=FieldValues[´Produto´];
Descricao[cont]:=FieldValues[´Descricao´];
cont:=cont+1;
next;
end;
end;
----------------------------------------------------------------------

e descobri que o erro nao eh por causa do ClientDataSet, e sim por causa dos arrays.
Descobri isto substituindo a linha
Produto[cont]:=FieldValues[´Produto´];
por
label2.Caption:=FieldValues[´Produto´];

o que posso estar fazendo errado na declaração do array???
estou declarando na parte var do form (pois quero que sejam globais) da segunte forma:
------------
var
FormMovimento: TFormMovimento;
Produto,Descricao,Preco,Quantidade,Peso,Total,Fiscal,IPI :array of String;
------------

e tentando usa-la da seguinte forma:
Produto[cont]:=FieldValues[´Produto´];
ou
Produto[1]=FieldValues[´Produto´];

soh que em nenhum dos casos funciona... porque?????????

Aquele Abraço!!!

Tiago Farinon


Anonymous

Anonymous

Responder

Posts

16/03/2003

Anonymous

Será que você está convertendo todos os campos para strings, ou está tentanto armazenar num array de string campos como valor, código, etc? Pode ser isso.


Responder

16/03/2003

Anonymous

O problema é que você não definiu o tamanho do array, como você está usando array dinâmico, pode ocorrer de estar acessando a memória fora do limite do array. Para isso use a função ´SetLength()´. Você define o tamanho com o RecordCount do componente que você está usando. Ex.: SetLength(Produto, ClientDataSetItens.RecordCount);
Você terá que fazer isso para todos os array. Eu aconselharia você a criar um tipo ´Record´ com os campos que você precisa e depois criar um array desse record, assim todos os campos teriam as mesmas posições, ou utilizar TStringList.
Espero ter ajudado.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar