Array
(
)

Query da erro e trava a rotina

Scandolara
   - 02 set 2004

Pessoal,

preciso de uma ajuda ..., tenho o seguinte codigo:

// dmtabelas.TProduto.First;
// ProgressBar2.Max := dmtabelas.TProduto.RecordCount;
// ProgressBar2.Position := 0;
// while not DMTabelas.TProduto.Eof do
// begin
// dmtabelas.TProduto.Edit;
// frmprod.atualizaPreco;
// dmtabelas.TProduto.Post;
// ProgressBar2.Position := ProgressBar2.Position + 1;
// dmtabelas.TProduto.Next;
// end;
// dmtabelas.TProduto.close;
// dmtabelas.TProduto.FreeOnRelease;

Em frmprod.atualizaPreco , tenho uma Query onde seleciono o preciso e faco a alteracao na tabela de PRodutos (do item que esta no dataset).

Qdo a tabela de produtos tinha pouco registro ... ia q era uma beleza ..., so que agora que tem muitos registro , inicio a rotina e qdo esta +/- no meio dos registros da um erro
´Access Violation ´ e numero do endereco de memoria e trava a maquina.

Naum sei mais que faco pra resolver isso..

alguem poderia me dar alguuma ajuda ?

Obr

Marcel


Macario
   - 02 set 2004

Olá programador, bom dia.

Poste o código da Query.


Scandolara
   - 02 set 2004

conforme pedido :

chamada
dmtabelas.QrySelMpProd.close;
dmtabelas.QrySelMpProd.Params[0].asstring := dmtabelas.TProdutoCodigo.AsString;
dmtabelas.QrySelMpProd.execsql;
dmtabelas.QrySelMpProd.open;

sql :
select distinct(c.codigo), a.codprod, a.codmp, a.qtduti, (c.custor * a.qtduti) as custoprod
from tmpprod a, tproduto b, tmatprim c
where a.codprod = :paramCodProd and
a.codprod = b.codigo and
a.codmp = c.codigo

é isso
obr


Sandra
   - 02 set 2004

Marcel,

De acordo com o text da sua SQL: você está utilizando o Select (apenas buscando, selecionando dados); neste caso, não se usa o comando execsql (dmtabelas.QrySelMpProd.execsql;)... basta o open (dmtabelas.QrySelMpProd.open;).

O ExecSQL é utilizado quando se faz um Insert, Update ou Delete (manutenção de dados).

Portanto, elimine a linha que contém esse método e verifique se o problema não está aí. Boa sorte!


Scandolara
   - 03 set 2004

Obr Sandra ... deu certo ...

valeu !!!

[]s