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