access vilation o que pode ser???
14/09/2004
0
Meus clientes utilizam muito no dia a dia duas telas básicas com vários terminais ao mesmo tempo,
que são as telas de digitação de pedido e cadastro de clientes.
O meu cliente está reclamando que com frequencia que recebe uma mensagem ´Access violation at address...´ no momento da pesquisa na tela de clientes ou na tela de pedido para pesquisar o cliente.
Tenho uma tela padrão de pesquisa de acordo com a tela que o usuário está clica no botão pesquisar
eu monto a query de acordo com a tela em questão e passo para a tela de pesquisa os dados que o cliente
precisa visualizar e ulilizo uma query dinâmica a pergunta é a seguinte tem algi de errado na minha query?
ou é melhor eu definir os componentes na tela (sqldataset,provider,clientdataset,datsource etc.) ao invés
de usar query dinâmica.
Abaixo segue um exemplo da tabela cliente.
procedure TFrmCadCliente.actPesquisaExecute(Sender: TObject);
var
result : Variant;
begin
inherited;
FrmPesquisaGeral.QryPadrao.close;
FrmPesquisaGeral.QryPadrao.sql.Clear;
FrmPesquisaGeral.QryPadrao.SQL.Add(´SELECT CLI_CODIGO as Codigo, CLI_NOME as Cliente,CLI_DATANASCIMENTO as Nascimento, CLI_RG as RG, CLI_CPF as CPF, CLI_CNPJ as CNPJ, CLI_LOGRADOUROENDERECO as Endereco, CLI_TELEFONE as Telefone´);
FrmPesquisaGeral.QryPadrao.SQL.Add(´FROM CLIENTE´ );
FrmPesquisaGeral.QryPadrao.SQL.Add(´WHERE CLI_NOME like :Pesquisa ´ );
FrmPesquisaGeral.QryPadrao.SQL.Add(´AND EMP_CODIGO = :Empresa´ );
FrmPesquisaGeral.QryPadrao.ParamByName(´Empresa´).AsInteger := strtoint(FrmPrincipalSGCAdm.CodigoEmpresaLBL.Caption);
FrmPesquisaGeral.ResultField := 1;
FrmPesquisaGeral.Pesquisa := true;
result := FrmPesquisaGeral.Open;
if result null then
begin
sdsQuery.Close;
cdsPadrao.Close;
sdsQuery.ParamByName(´EMPRESA´).AsInteger := FrmPrincipalSGCAdm.CodEmpresa;
sdsQuery.ParamByName(´CODIGO´).AsInteger := result;
sdsQuery.Open;
cdsPadrao.Open;
SalvarBTN.Enabled := True;
cdsPadrao.Edit;
end;
edtConsulta.Visible := False;
dbCodigo.Visible := True;
end;
´Deus responde as nossas preocupações para com os outros´
Um abraço
Plácido
Placido
Posts
14/09/2004
Nelson_prog
Nelson
nelson_prog@ig.com.br
14/09/2004
Placido
Não entendi o sistema é muito grande você quer que eu mande o form e a
unit do cadastro de cliente e o forma da pesquisa??
Grato
14/09/2004
Otto
16/09/2004
Placido
é acionado...
Grato
16/09/2004
Paulo_amorim
Olá
De qualquer forma, ele já está em memória?
Até+
16/09/2004
Paulo_amorim
Olá
Provavelmente. Access violation na chamada de uma procedure que eh de outro form normalmente eh porque lee não está criaod...
tente fazer um teste: coloque um breakpoint exatamente onde vai dar o erro
Daí coloque um Watch com o Form duvidoso... na hora que ele parar no breakpoint veja oq ue aparece no watch.
Se aparecer NIL, voilá!
Se aparecer [csinheritable] (eu acho que eh isso) então ele está de fato criado e não sei o que seria :?
Espeor que ajude
Até+
17/09/2004
Placido
Como esta tela de pesquisa é genérica eu estava criando este formulário
no Form Principal, acho que o form estava sendo fechado num outro form.
Muito obrigafo fique com Deus.
Plácido
Clique aqui para fazer login e interagir na Comunidade :)