O que pode estar errado, Delphi
procedure tfrm_principal.conectardb();
var destino:string;
begin
destino := extractfilepath(paramstr(0));
if fileexists(destino+'CoCDB.mdb') then
BEGIN
if datamodule1.conectarDB.Connected = false then
begin
datamodule1.conectarDB.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+destino+'CoCDB.mdb;Persist Security Info=False';
datamodule1.conectarDB.Connected:=true;
showmessage('Conectado com sucesso!');
end
else
datamodule1.conectarDB.Connected:=false;
showmessage('Virou Falso conectado.');
end
ELSE
showmessage('Erro ao conectar!!'+ #10+ 'Porfavor, coloque o Banco de Dados na mesma Pasta do Aplicativo:' +#10+ destino);
application.Terminate;
end;
ERRO QUE ACONTECEU EH ESTE ABAIXO, QUANDO EU EXECUTO O APLICATIVO
Acess Violation at address 0046aBE9 in module 'Projeto.exe' Read...
Alexandre
Curtidas 0
Melhor post
Cauê Nishijima
04/06/2014
Olá Alexandre, aparentemente seu código esta correto, só pra descartar todas as possibilidades o DataModule esta sendo criado corretamente ou esta no autocreate?
GOSTEI 1
Mais Respostas
Joel Rodrigues
04/06/2014
Olá, Alexandre. Você conseguiu identificar em que ponto exatamente está sendo gerado o erro?
GOSTEI 1
Claudio Ferreira
04/06/2014
O erro provável ao ver esse codigo é o datamodule não ter sido criado no autocreate da aplicação e nem criado manualmente.
GOSTEI 1
Itamar Souza
04/06/2014
Fiz um teste:
Acredito que o problema seja a chamada da procedure conectardb(); que se encontra no tfrm_principal.
provável que não esteja criando o DataModule ou chamando a procedure.
Acredito que o problema seja a chamada da procedure conectardb(); que se encontra no tfrm_principal.
provável que não esteja criando o DataModule ou chamando a procedure.
procedure TForm1.Button1Click(Sender: TObject); var destino:string; begin destino := extractfilepath(paramstr(0)); lbLocalEXE.Caption := destino; lbLocalBanco.Caption := destino+'CoCDB.mdb'; end;
GOSTEI 1
Alexandre
04/06/2014
Linha do erro:
Vou ir dando uma olhada agora no que pode ser, em cima do que vocês me apresentam.
if datamodule1.conectarDB.Connected = false then
Vou ir dando uma olhada agora no que pode ser, em cima do que vocês me apresentam.
GOSTEI 0
Alexandre
04/06/2014
Galera, problema resolvido.
Bom, o projeto estava inicialmente iniciando desta maneira:
E a procedure estava no evento onCreate, o frm_principal era criado antes do TDataModule, logo ele não reconhecia o DataModule pois DataModule ainda não havia sido criado, pelo menos eu entendi como se fosse isso..
Obrigado a todos!
Bom, o projeto estava inicialmente iniciando desta maneira:
Application.Initialize; Application.CreateForm(Tfrm_principal, frm_principal); Application.CreateForm(TDataModule1, DataModule1); Application.Run;
E a procedure estava no evento onCreate, o frm_principal era criado antes do TDataModule, logo ele não reconhecia o DataModule pois DataModule ainda não havia sido criado, pelo menos eu entendi como se fosse isso..
Obrigado a todos!
GOSTEI 0