ClientdataSet Vs messagedlg
olá pessoal blz, seguinte.. estou com um problema meio que estranho se alguém puder me dar uma dica agradeço desde ja
aqui abaixo segue a rotina
tmp := TClientDataSet.Create(nil);
tmp.CloneCursor(fmConsultaPedido.cdsPed_Capa,false,false);
tmp.Open;
tmp.First;
while (not tmp.Eof) and
(Trim(edPlaca.text) <> '') and
(trim(edViagem.text) <> '') do
begin
if tmp.fieldByName('flag').AsString = 'False' then
begin
edPedido.text := tmp.fieldByName('PED_NUMERO_PEDIDO').AsString;
meDataPedido.text := tmp.fieldByName('PED_DATA_DIGITACAO').AsString;
MessageDlg('s', mtWarning, [mbYes], 0); <<-- QUANDO DISPARO UMA MSG AQUI OU COM MESSAGEDLG OU SHOWMESSAGE DA ERRO
BitBtn1Click(nil);
end;
tmp.Next; <<--- O ERRO OCORRE NESTA LINHA
end;
Bem quando eu disparo uma mensagem quando o clinetdataset vai para o next da um erro de access violation em modulo midas.dll, eu tenho o midas na aplicacao, tenho o midas no registro do windows, no system, porém se nao coloco a msg a rotina termina numa boa...
vlw
aqui abaixo segue a rotina
tmp := TClientDataSet.Create(nil);
tmp.CloneCursor(fmConsultaPedido.cdsPed_Capa,false,false);
tmp.Open;
tmp.First;
while (not tmp.Eof) and
(Trim(edPlaca.text) <> '') and
(trim(edViagem.text) <> '') do
begin
if tmp.fieldByName('flag').AsString = 'False' then
begin
edPedido.text := tmp.fieldByName('PED_NUMERO_PEDIDO').AsString;
meDataPedido.text := tmp.fieldByName('PED_DATA_DIGITACAO').AsString;
MessageDlg('s', mtWarning, [mbYes], 0); <<-- QUANDO DISPARO UMA MSG AQUI OU COM MESSAGEDLG OU SHOWMESSAGE DA ERRO
BitBtn1Click(nil);
end;
tmp.Next; <<--- O ERRO OCORRE NESTA LINHA
end;
Bem quando eu disparo uma mensagem quando o clinetdataset vai para o next da um erro de access violation em modulo midas.dll, eu tenho o midas na aplicacao, tenho o midas no registro do windows, no system, porém se nao coloco a msg a rotina termina numa boa...
vlw
Ricardo Matarazzo
Curtidas 0
Respostas
Claudia Nogueira
26/11/2012
Que estranho esse erro.
Fiz o código aqui igualzinho e não ocorreu, a única diferença é que não sei o que tem no seu botão BitBtn1 aí não coloquei o BitBtn1Click(nil).
Na lógica era pra dar erro de acesso violado no tmp.next somente se em algum ponto destruísse a variável tmp, e mesmo assim não era pra citar a dll midas.dll na mensagem de erro.
O que tem no código do botão BitBtn1?
Testei no Delphi 7 e XE. Qual versão você usa?
Fiz o código aqui igualzinho e não ocorreu, a única diferença é que não sei o que tem no seu botão BitBtn1 aí não coloquei o BitBtn1Click(nil).
Na lógica era pra dar erro de acesso violado no tmp.next somente se em algum ponto destruísse a variável tmp, e mesmo assim não era pra citar a dll midas.dll na mensagem de erro.
O que tem no código do botão BitBtn1?
Testei no Delphi 7 e XE. Qual versão você usa?
GOSTEI 0
Ricardo Matarazzo
26/11/2012
eh o tratamento e inclusão no banco de dados.. porém eu tb já comentei o botao bitbtn e fiz o teste e ocorre o mesmo erro, ou seja.. ai eh certeza de nao estar destruindo o tmp.. mas mesmo ocorre...e o mais doido é que isso ocorre somente neste form...do projeto
GOSTEI 0
Ricardo Matarazzo
26/11/2012
perdao.. esqueci.. uso a d7
GOSTEI 0
Ricardo Matarazzo
26/11/2012
se ao invés de eu criar clientdataset em execução eu jogar o componente no form o erro continua estranho e no mesmo lugar, porém a msg muda para
raised exception class eAccessViolation with message 'Access vilation at address 000000000. read of address 00000000'
caso alguém tenha alguma outra idéia.. fico grato
att
Ricardo
raised exception class eAccessViolation with message 'Access vilation at address 000000000. read of address 00000000'
caso alguém tenha alguma outra idéia.. fico grato
att
Ricardo
GOSTEI 0
Ricardo Matarazzo
26/11/2012
Após muitas tentativas descobri o que estava ocorrendo, ao fechar o formulario fmconsultapedido no evento close estava colocando Action := cafree;
ao tirar parou de dar o problema, só não consegui entender a relação entre o form, e a msg para causar a a exception
obr pelo interesse em ajudar claudia
ao tirar parou de dar o problema, só não consegui entender a relação entre o form, e a msg para causar a a exception
obr pelo interesse em ajudar claudia
GOSTEI 0
Claudia Nogueira
26/11/2012
Opa que beleza. :)
Após muitas tentativas descobri o que estava ocorrendo, ao fechar o formulario fmconsultapedido no evento close estava colocando Action := cafree;
ao tirar parou de dar o problema, só não consegui entender a relação entre o form, e a msg para causar a a exception
obr pelo interesse em ajudar claudia
ao tirar parou de dar o problema, só não consegui entender a relação entre o form, e a msg para causar a a exception
obr pelo interesse em ajudar claudia
GOSTEI 0
Alisson Santos
26/11/2012
Post concluido, qualquer duvida nos informar.
GOSTEI 0