Fórum problemas com terminate #422062
20/08/2012
0
Olá pessoal...!
Estou com problemas para encerrar o aplicavo quando ele não consegue conectar ao banco de dados. Criei a função abaixo em OnCreate do formulario primcipal "ConectarBD_ECF" e caso não consiga conectar, a aplicação precisa ser encerrada.
Para encerrar a aplicação utilizo o comando "Application.Terminate;".
O problema é que ao encerra o programa, o processo dele fica presso, daí tenho que ir no gerenciador de processos para encerrar manualmente. Alguém poderia me dar uma ajuda com isso, pois teóricamente, o que eu fiz era para funcionar, ou seja, encerrar o aplicativo e liberar a memória, retirar do processo.
Agradeço desde já qualquer ajuda.... Postei o código completo abaixo...
if not ConectarBD_ECF(Menssagem) then begin
MsgDlg(Menssagem,mtWarning,[mbOK]);
Application.Terminate;
Exit;
end;
function ConectarBD_ECF(var msg: String) : Boolean;
var ArqIni : TIniFile;
FileName, host, porta : String;
begin
result := true;
FileName := ExtractFilePath(Application.ExeName)+config.ini;
if FileExists(FileName) then begin
ArqIni := TIniFile.Create(FileName);
try
try
//Configuração de Acesso ao Banco de Dados
cnxDB := Descriptografar(ArqIni.ReadString(DB,DataBase,));
host := Descriptografar(ArqIni.ReadString(DB,Host,));
porta := Descriptografar(ArqIni.ReadString(DB,Porta,));
cnxUser := Descriptografar(ArqIni.ReadString(DB,UserName,));
cnxPw := Descriptografar(ArqIni.ReadString(DB,Password,));
//Configurações do Terminal
sTerminal := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Terminal,));
sFilial := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Filial,));
finally
ArqIni.Free;
end;
with dm.cDB do begin
Database := cnxDB;
Server := host;
Username := cnxUser;
Password := cnxPw;
Connect;
end;
except
on E: Exception do begin
msg := Não foi possível conectar o Banco de Dados!+#13+#13+Erro: +E.Message;
result := false;
end;
end;
end else
begin
msg := Banco de Dados não encontrado!;
result := false;
end;
end;
Estou com problemas para encerrar o aplicavo quando ele não consegue conectar ao banco de dados. Criei a função abaixo em OnCreate do formulario primcipal "ConectarBD_ECF" e caso não consiga conectar, a aplicação precisa ser encerrada.
Para encerrar a aplicação utilizo o comando "Application.Terminate;".
O problema é que ao encerra o programa, o processo dele fica presso, daí tenho que ir no gerenciador de processos para encerrar manualmente. Alguém poderia me dar uma ajuda com isso, pois teóricamente, o que eu fiz era para funcionar, ou seja, encerrar o aplicativo e liberar a memória, retirar do processo.
Agradeço desde já qualquer ajuda.... Postei o código completo abaixo...
if not ConectarBD_ECF(Menssagem) then begin
MsgDlg(Menssagem,mtWarning,[mbOK]);
Application.Terminate;
Exit;
end;
function ConectarBD_ECF(var msg: String) : Boolean;
var ArqIni : TIniFile;
FileName, host, porta : String;
begin
result := true;
FileName := ExtractFilePath(Application.ExeName)+config.ini;
if FileExists(FileName) then begin
ArqIni := TIniFile.Create(FileName);
try
try
//Configuração de Acesso ao Banco de Dados
cnxDB := Descriptografar(ArqIni.ReadString(DB,DataBase,));
host := Descriptografar(ArqIni.ReadString(DB,Host,));
porta := Descriptografar(ArqIni.ReadString(DB,Porta,));
cnxUser := Descriptografar(ArqIni.ReadString(DB,UserName,));
cnxPw := Descriptografar(ArqIni.ReadString(DB,Password,));
//Configurações do Terminal
sTerminal := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Terminal,));
sFilial := 0+Descriptografar(ArqIni.ReadString(TERMINAL,Filial,));
finally
ArqIni.Free;
end;
with dm.cDB do begin
Database := cnxDB;
Server := host;
Username := cnxUser;
Password := cnxPw;
Connect;
end;
except
on E: Exception do begin
msg := Não foi possível conectar o Banco de Dados!+#13+#13+Erro: +E.Message;
result := false;
end;
end;
end else
begin
msg := Banco de Dados não encontrado!;
result := false;
end;
end;
Vagner Almeida
Curtir tópico
+ 0
Responder
Posts
21/08/2012
Marco Salles
isto acontece quando não encontra o Ini ou quando da o erro do Connect (isto é na Exceção)
qual o delphi e qual o windows que vc esta utilizando ?
Testei aqui no Vista e no delphiXe2 e aparentemente o processo não ficou preso
[]sds
qual o delphi e qual o windows que vc esta utilizando ?
Testei aqui no Vista e no delphiXe2 e aparentemente o processo não ficou preso
[]sds
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)