Configurar caminho do Banco de dados atraves de arquivo INI
Gostaria de saber se vocês sabem como carregar o caminho do banco de dados através de um arquivo INI em Delphi7, Firebird2.5?
O Banco de dados foi feito no Ibconsole.
[]s
O Banco de dados foi feito no Ibconsole.
[]s
Magnata Gold
Curtidas 0
Respostas
Eduardo Richeli
12/02/2012
amigo, qual componente você esta utilizando?
GOSTEI 0
Magnata Gold
12/02/2012
Estou Ulilizando o SQLconnection
[]s
GOSTEI 0
William
12/02/2012
Colega vc sabe trabalhar com arquivo INI, senão segue um link:
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=1295
depois é só carregar os parâmetros nas propriedades do SQLConnection.
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=1295
depois é só carregar os parâmetros nas propriedades do SQLConnection.
GOSTEI 0
Magnata Gold
12/02/2012
Colega vc sabe trabalhar com arquivo INI, senão segue um link:
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=1295
depois é só carregar os parâmetros nas propriedades do SQLConnection.
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=1295
depois é só carregar os parâmetros nas propriedades do SQLConnection.
A minha conexão é local, como adpatar o arquivo .INI para uso local?
[]s
GOSTEI 0
Deivison Melo
12/02/2012
Seguem abaixo exemplos usados com a conexão dbexpress usando o banco de dados firebird...
(*************************************************************************************************************************)
//Procedure para gravar arquivo ini usado no login
//inicio
procedure GravaIni(Arquivo, Sessao, Subsessao, valor: string);
var
ArqIni: TIniFile;
begin
ArqIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + Arquivo);
try
ArqIni.WriteString(Sessao, Subsessao, valor);
finally
FreeAndNil(ArqIni);
end;
end;
//fim
(*************************************************************************************************************************)
//Funcao para ler arquivo ini usado no login
//inicio
function LerIni(Arquivo, Sessao, Subsessao: string): string;
var
ArqIni: TIniFile;
sDirAplicacao: string;
begin
sDirAplicacao := ExtractFilePath(ParamStr(0));
ArqIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + Arquivo);
try
Result := ArqIni.ReadString(Sessao, Subsessao, );
finally
FreeAndNil(ArqIni);
end;
end;
//fim
(*************************************************************************************************************************)
//Lendo o arquivo ini criado (isso no create do formulário onde contém os objetos dbware´s (conexão com banco))
//inicio
begin
if not FileExists(sga.ini) then //verificando se o arquivo *.ini existe (usei o nome sga, mas o nome que você pesquisa é o mesmo nome criado)
ChamaForm(TfrmConfiguracao, frmConfiguracao) // essa procedure chama form foi feita para chamar os formularios, disponibilizarei aqui tb!
else
begin
try
with ConexaoDB do //nome do objeto dbconection do dbexpress
begin
Connected := False;
connectionname := PortoBello; //Nome do alias para conexão
drivername := interbase; //mesmo usando o firebird colocar aqui interbase, isso foi feito em delphi 7
getdriverfunc := getSQLDriverINTERBASE;
libraryname := dbexpint.dll;
params.clear;
params.add(drivername=interbase);
params.add(database= + LerInI(sga.ini, DB, caminho));
params.add(rolename=rolename);
params.add(user_name= + LerInI(sga.ini, DB, usuario));
params.add(password= + LerInI(sga.ini, DB, senha));
params.add(servercharset=);
params.add(sqldialect=3);
params.add(blobsize=-1);
params.add(commitretain=false);
params.add(waitonlocks=true);
params.add(errorresourcefile=);
params.add(localecode=0000);
params.add(interbase transisolation=readcommited);
params.add(trim char=false);
vendorlib := gds32.dll;
Connected := true;
end;
except
raise Exception.Create(Verifique se as configurações do arquivo sga.ini estão corretas!);
end;
end;
end;
//fim
(*************************************************************************************************************************)
//Chamar formulário
//inicio
procedure ChamaForm(aClasseForm: TComponentClass; aForm: TForm);
begin
{método para chamar form}
Application.CreateForm(aClasseForm, aForm);
try
aForm.ShowModal;
finally
aForm.Free;
end;
end;
//fim
(*************************************************************************************************************************)
A conexão com os componentes IBX são mais simples, apenas você terá que adaptar para que o caminho do seu banco de dados seja lido do arquivo *.ini criado para o seu sistema (ler com a função criada)...
forte abraço!
Emanoel Deivison
Recife - PE
(*************************************************************************************************************************)
//Procedure para gravar arquivo ini usado no login
//inicio
procedure GravaIni(Arquivo, Sessao, Subsessao, valor: string);
var
ArqIni: TIniFile;
begin
ArqIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + Arquivo);
try
ArqIni.WriteString(Sessao, Subsessao, valor);
finally
FreeAndNil(ArqIni);
end;
end;
//fim
(*************************************************************************************************************************)
//Funcao para ler arquivo ini usado no login
//inicio
function LerIni(Arquivo, Sessao, Subsessao: string): string;
var
ArqIni: TIniFile;
sDirAplicacao: string;
begin
sDirAplicacao := ExtractFilePath(ParamStr(0));
ArqIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + Arquivo);
try
Result := ArqIni.ReadString(Sessao, Subsessao, );
finally
FreeAndNil(ArqIni);
end;
end;
//fim
(*************************************************************************************************************************)
//Lendo o arquivo ini criado (isso no create do formulário onde contém os objetos dbware´s (conexão com banco))
//inicio
begin
if not FileExists(sga.ini) then //verificando se o arquivo *.ini existe (usei o nome sga, mas o nome que você pesquisa é o mesmo nome criado)
ChamaForm(TfrmConfiguracao, frmConfiguracao) // essa procedure chama form foi feita para chamar os formularios, disponibilizarei aqui tb!
else
begin
try
with ConexaoDB do //nome do objeto dbconection do dbexpress
begin
Connected := False;
connectionname := PortoBello; //Nome do alias para conexão
drivername := interbase; //mesmo usando o firebird colocar aqui interbase, isso foi feito em delphi 7
getdriverfunc := getSQLDriverINTERBASE;
libraryname := dbexpint.dll;
params.clear;
params.add(drivername=interbase);
params.add(database= + LerInI(sga.ini, DB, caminho));
params.add(rolename=rolename);
params.add(user_name= + LerInI(sga.ini, DB, usuario));
params.add(password= + LerInI(sga.ini, DB, senha));
params.add(servercharset=);
params.add(sqldialect=3);
params.add(blobsize=-1);
params.add(commitretain=false);
params.add(waitonlocks=true);
params.add(errorresourcefile=);
params.add(localecode=0000);
params.add(interbase transisolation=readcommited);
params.add(trim char=false);
vendorlib := gds32.dll;
Connected := true;
end;
except
raise Exception.Create(Verifique se as configurações do arquivo sga.ini estão corretas!);
end;
end;
end;
//fim
(*************************************************************************************************************************)
//Chamar formulário
//inicio
procedure ChamaForm(aClasseForm: TComponentClass; aForm: TForm);
begin
{método para chamar form}
Application.CreateForm(aClasseForm, aForm);
try
aForm.ShowModal;
finally
aForm.Free;
end;
end;
//fim
(*************************************************************************************************************************)
A conexão com os componentes IBX são mais simples, apenas você terá que adaptar para que o caminho do seu banco de dados seja lido do arquivo *.ini criado para o seu sistema (ler com a função criada)...
forte abraço!
Emanoel Deivison
Recife - PE
GOSTEI 0
Magnata Gold
12/02/2012
Em qual form eu coloco esses códigos?
[]s
[]s
GOSTEI 0
Deivison Melo
12/02/2012
No meu caso eu coloquei em um dataModule
GOSTEI 0
Singular Ti
12/02/2012
é mto simples...
Qualquer duvida me envie um e-mail..
Abraços!!!
function ConexaoFB:Boolean; Var Caminho: String; begin dmGeral.SQLConnection.Connected := false; caminho := LerIniConexao(conexao, caminhoBD); dmGeral.SQLConnection.Params.Values[Database] := Caminho; try SQLConnectionSupervisao.Connected := True; Result := true; except Result := false; end; end; function LerIniConexao(sSecao, sVariavel: String): String; var sNomeArq: String; iniArq: TIniFile; begin Result := ; sNomeArq := extractfiledir(application.ExeName); sNomeArq := sNomeArq + \rede.ini; if FileExists(sNomeArq) Then begin iniArq := TIniFile.Create(sNomeArq); Result := iniArq.ReadString(sSecao, sVariavel, ); //le a string iniArq.Free; end; // verifica se o arquivo ini existe; if not FileExists(sNomeArq) then begin Erro(Atenção, o arquivo de configuração não pode ser encontrado.); Application.Terminate; end; end; //Arquivo Rede.ini [conexao] caminhoBD=localhost:D:\banco.fdb
Qualquer duvida me envie um e-mail..
Abraços!!!
GOSTEI 0
Deivison Melo
12/02/2012
Conseguiu?
GOSTEI 0
Kleber Silva
12/02/2012
Para vc colocar no datamodule vc deve colocar na user as classes para trabalhar com:
Texto( arquivo ini) e form
Texto( arquivo ini) e form
GOSTEI 0