Erro aplicação nova no Delphi 10.3.3

07/09/2023

0

Bom dia, criei uma aplicação nova no delphi 10.3.3 porém ao tentar rodar em outro PC da o seguinte erro:

Exception EAcessViolation in module SoftMed.exe at 0045DA9F
Access violation at adress 0085DA9F un module ''SoftMed.exe''. Read of adress 00000000.

Alguém pode me ajudar?
Juliano

Juliano

Responder

Post mais votado

11/09/2023

como você usa clientdataset, você precisa incluir a unit MidasLib no uses do teu DM.

no trecho:
// Abre a pesquisa
DM.ibdUsuario.Open;
DM.cdsUsuario.Open;
Open;

você está abrindo três vezes.
DM.cdsUsuario.Open;
deveria bastar.

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

08/09/2023

Arthur Heinrich

Isso pode ser causado por muitas coisas. O mais provável é que você tenha acessado uma classe que não foi instanciada, ou acesso a um ponteiro não inicializado.

Não é fácil de localizar estes problemas sem utilizar um debugger. Mas, como você diz que ocorre em outra máquina, pode ser outra coisa. Talvez relacionado a algo que a aplicação acessa, que não esteja disponível na outra máquina.
Responder

08/09/2023

Juliano

Fiz algumas alterações o sistema iniciou, porém ao tentar efetuar uma consulta na tela de login retorna o erro: Access violation at adress 0085DA9F un module ''SoftMed.exe''. Read of adress 00000000.

with DM.ibdUsuario do
begin
// Cria o SQL da pesquisa
Close;
SelectSQL.Clear;
SelectSQL.Add('SELECT T1.USU_ID, T1.USU_ATIVO, T1.USU_ADMINISTRADOR, ');
SelectSQL.Add('T1.USU_LOGIN, T1.USU_SENHA ');
SelectSQL.Add('FROM USUARIOS T1 ');
SelectSQL.Add('WHERE T1.USU_LOGIN = :USU_LOGIN ');

ParamByName('USU_LOGIN').AsString := Trim(edtUsuario.Text);

// Abre a pesquisa
DM.ibdUsuario.Open;
DM.cdsUsuario.Open;
Open;
.......

Conecto o banco de dados através de um arquivo .ini conforme a configuração no View Source:
var
vArqIni:TIniFile;
Caminho:string;

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := 'SoftMed';
Application.CreateForm(TDM, DM);
Application.CreateForm(TfrmPrincipal, frmPrincipal);
//Configura arquivo .INI para o banco de dados
Caminho:='127.0.0.1/3050:C:\\SoftMedNew\\Banco_Dados\\DADOS.FDB';
DM.ibdDADOS.Close;
if not(FileExists(extractfilepath(ParamStr(0))+'Config.ini') ) then
begin
ShowMessage('Arquivo de Configurações do Banco de Dados não Encontrado!');
vArqIni := TIniFile.Create(extractfilepath(ParamStr(0))+'Config.ini');
try
vArqIni.WriteString('BANCO','DatabaseName',Caminho);
DM.ibdDADOS.DatabaseName:= Caminho;
finally
vArqIni.Free;
end;
end;
try
vArqIni := TIniFile.Create(extractfilepath(ParamStr(0))+'Config.ini');
Caminho :=vArqIni.ReadString('BANCO','DatabaseName',Caminho);
DM.ibdDADOS.DatabaseName:= Caminho;
finally
vArqIni.Free;
end;

try
DM.ibdDADOS.Open;
frmLogin := TfrmLogin.Create(nil);
frmLogin.ShowModal;
frmLogin.Hide;
frmLogin.Free;
Application.Run;
except
Application.MessageBox( 'Não foi possivel se conectar com o banco de dados.' + #13 +
'verifique se o arquivo de configuração está configurado, ' + #13 +
'ou se o servidor firebird está instalado em seu sistema.' + #13 +
'Verifique tambem se o Usuario secundario esta cadastrado.' + #13 +
'Entre em contato com suporte para esclarecer qualquer dúvida. (14) 99791-6531',
'Error Interno', mb_ok + mb_IconError );
Application.Terminate;
end;
end.
Responder

11/09/2023

Juliano

Achei onde está dando o erro, é na obra de abrir o clientdataset, mas isso só acontece em outro computador, onde não tenho o delphi instalado, alguém poderia me ajudar.

"Acess violation at adress 007FB44B in module "SoftMed.exe". Read off address 00000000"
Responder

12/09/2023

Juliano

como você usa clientdataset, você precisa incluir a unit MidasLib no uses do teu DM.

no trecho:
// Abre a pesquisa
DM.ibdUsuario.Open;
DM.cdsUsuario.Open;
Open;

você está abrindo três vezes.
DM.cdsUsuario.Open;
deveria bastar.


Muito obrigado declarei o MidasLib e removi DM.ibdUsuario.Open deu certo
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