problemas com kernelbase.dll

15/03/2012

0

Olá pessoal!

Estou montando um módulo de pedido de compra que é constituido de três janelas: Controle de Pedidos, Pedido de Compra de Baixa de Pedido de Compra.

Este último estou tendo problemas. Estou usando dois ClientDataSet, um para puxar o pedido do Banco e outro para armazernar temporáriamente os dados de um arquivo XML de uma NFe que servirá para atualizar o pedido de compra, para dar baixa.

O problema está no procedimento abaixo:

cdsXML.First;
while not cdsXML.Eof do begin
if cdsPedItens.Locate(codbarras,cdsXMLcEAN.AsString,[loCaseInsensitive,loPartialKey]) then
GravarItens(U, cdsPedItensitem.AsInteger)
else
if dm.zqConsProduto.Locate(codbarras,cdsXMLcEAN.AsString,[loCaseInsensitive,loPartialKey]) then begin
zqPedBaixa.SQL.Clear;
zqPedBaixa.SQL.Add(select max(item) as item from entradaitens+sFilial+ where entradacab = +pedido.Text);
zqPedBaixa.Open;
i := zqPedBaixa.FieldByName(item).AsInteger + 1;

GravarItens(I, i);
end
else
Prod := Prod + cdsXMLcEAN.AsString+ - +cdsXMLxProd.AsString + #10;

cdsXML.Next;
end;

Não tem erro nenhum. Mas algumas vezes quando executa o comando LOCATE, independente da linha, aparece um erro: Violação de Acesso de Memoria, erro no módulo KERNELBASE.DLL.

Já descobri que o problema acontece quando o antivirus está ativado (Kaspersky). Alguém já viu esse problema, sabe como resolver?

Agradeço desde já qualquer ajuda.
Abraços....
Vagner Almeida.
Vagner Almeida

Vagner Almeida

Responder

Posts

15/03/2012

Bruno Leandro

olá tente debugar e verificar

1- quando for executar o locate a propriedade state da query este em dsbrowser
2- se o valor que está sendo passado não em vazio
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