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
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
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)