Fórum DBExpress -gt; Configuração e Parâmetros em Arquivos INI #356895
09/04/2008
0
Bom, estou começando a usar DBExpress e tenho alguma dúvidas:
1º) Para fazer a conexão com o Firebird 2.0, qual o melhor driver Free para usar?
2º) Como eu faço para armazenar os parâmetros do meu DBExpress dentro de um arquivo INI e carregar quando o programa for inicializado? Posso colocar os parâmetros no arquivo INI e o Nome de Usuário e Senha carregar no SQLConnection via programação??
3º) Onde a programação que carrega os parâmetros do SQLConnection deve estar localizada? Evento onCreate do DataModule?
Se puderem me ajudar nessa e dar dicas da utilização do DBExpress com o Firebird 2.0 e Delphi 7 eu agradeceria.
Obrigado.
1º) Para fazer a conexão com o Firebird 2.0, qual o melhor driver Free para usar?
2º) Como eu faço para armazenar os parâmetros do meu DBExpress dentro de um arquivo INI e carregar quando o programa for inicializado? Posso colocar os parâmetros no arquivo INI e o Nome de Usuário e Senha carregar no SQLConnection via programação??
3º) Onde a programação que carrega os parâmetros do SQLConnection deve estar localizada? Evento onCreate do DataModule?
Se puderem me ajudar nessa e dar dicas da utilização do DBExpress com o Firebird 2.0 e Delphi 7 eu agradeceria.
Obrigado.
Bruno6652
Curtir tópico
+ 0
Responder
Posts
09/04/2008
Du_nirvana
Exemplo do arquivo INI:
#Definição do tipo de conexão, de acordo com o banco de dados utilizado
[CONEXAO]
CONN=OracleConnectioN
CONN=MySQLConnectioN
Possiveis configurações de conexão, de acordo com o banco de dados utilizado
[MySQLConnection]
DriverName=dbxmysql
LibraryName=dbxopenmysql50.dll
GetDriverFunc=getSQLDriverMYSQL50
VendorLib=libmysql.dll
HostName=localhost
Database=dataflow
User_Name=desv
Password=desv
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
LoginPrompt=False
Compressed=False
Encrypted=False
Connected=False
RowsetSize=
OS Authentication=
Multiple Transaction=
Trim Char=
Exemplo para carregar arquivo do INI:
var
vl_config : TIniFile; // associa o arquivo de configuracao a variavel
vl_conexao: string; // variavel que recebe o nome da conexao
begin
vl_config := TIniFile.Create(´Config\config.ini´);
vl_conexao := vl_config.readstring(´CONEXAO´,´CONN´,´´); //seção -> mome chava para pegar valor -> valor padrao caso a seção ou nome chave nao sejam encontrados
DataM.SQLCon.ConnectionName := vl_conexao;
DataM.SQLCon.DriverName := vl_config.ReadString(´MySQLConnection´, ´DriverName´, ´´);
DataM.SQLCon.LibraryName := vl_config.ReadString(´MySQLConnection´, ´LibraryName´, ´´);
DataM.SQLCon.GetDriverFunc := vl_config.ReadString(´MySQLConnection´, ´GetDriverFunc´, ´´);
DataM.SQLCon.VendorLib := vl_config.ReadString(´MySQLConnection´, ´VendorLib´, ´´);
DataM.SQLCon.LoadParamsFromIniFile(´Config\config.ini´);
DataM.SQLCon.Connected := TRUE;
end;
Em relação a onde colocar depende, no meu caso coloco na minha tela de login, já que o usuário pode trocar de banco de dados antes de iniciar a aplicação.
#Definição do tipo de conexão, de acordo com o banco de dados utilizado
[CONEXAO]
CONN=OracleConnectioN
CONN=MySQLConnectioN
Possiveis configurações de conexão, de acordo com o banco de dados utilizado
[MySQLConnection]
DriverName=dbxmysql
LibraryName=dbxopenmysql50.dll
GetDriverFunc=getSQLDriverMYSQL50
VendorLib=libmysql.dll
HostName=localhost
Database=dataflow
User_Name=desv
Password=desv
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
LoginPrompt=False
Compressed=False
Encrypted=False
Connected=False
RowsetSize=
OS Authentication=
Multiple Transaction=
Trim Char=
Exemplo para carregar arquivo do INI:
var
vl_config : TIniFile; // associa o arquivo de configuracao a variavel
vl_conexao: string; // variavel que recebe o nome da conexao
begin
vl_config := TIniFile.Create(´Config\config.ini´);
vl_conexao := vl_config.readstring(´CONEXAO´,´CONN´,´´); //seção -> mome chava para pegar valor -> valor padrao caso a seção ou nome chave nao sejam encontrados
DataM.SQLCon.ConnectionName := vl_conexao;
DataM.SQLCon.DriverName := vl_config.ReadString(´MySQLConnection´, ´DriverName´, ´´);
DataM.SQLCon.LibraryName := vl_config.ReadString(´MySQLConnection´, ´LibraryName´, ´´);
DataM.SQLCon.GetDriverFunc := vl_config.ReadString(´MySQLConnection´, ´GetDriverFunc´, ´´);
DataM.SQLCon.VendorLib := vl_config.ReadString(´MySQLConnection´, ´VendorLib´, ´´);
DataM.SQLCon.LoadParamsFromIniFile(´Config\config.ini´);
DataM.SQLCon.Connected := TRUE;
end;
Em relação a onde colocar depende, no meu caso coloco na minha tela de login, já que o usuário pode trocar de banco de dados antes de iniciar a aplicação.
Responder
Gostei + 0
10/04/2008
Paullsoftware
Bem, eu faço assim:
Criei essa procedure que tenta carregar o arquivo ini de configuração para o SQLConnection, e caso não consiga ele cria um com os paramtros padrões, criados em tempo de desenvolvimento...
para chamar a procedure é bem simples, basta colocar no onCreate do DataModule:
Criei essa procedure que tenta carregar o arquivo ini de configuração para o SQLConnection, e caso não consiga ele cria um com os paramtros padrões, criados em tempo de desenvolvimento...
procedure LoadConnection(SqlConn:TSQLConnection); var ArqConf : string; PathTemp: string; wNomeServer : string; wAdressServer : string; begin wNomeServer := Trim(Copy(HostAdress,1,Pos(´;´,HostAdress)-1)); wAdressServer := Trim(Copy(HostAdress,Pos(´;´,HostAdress)+1,Length(HostAdress))); ArqConf := ExtractFilePath(ParamStr(0)) + ´Config.ini´; PathTemp := wAdressServer+´:´+ExtractFileDir(ParamStr(0))+´\BANCO.FDB´; with SqlConn do begin if FileExists(ArqConf) then begin try Close; Params.LoadFromFile(ArqConf); Open; PreparaData(); except on E: Exception do MessageDlg(´Erro ao conectar com o banco de dados! ´+#10+E.Message,mtError,[mbOK],0); end; end else begin Params.Values[´DataBase´] := PathTemp; Params.Insert(0,´[´+SqlConn.ConnectionName+´]´); Params.SaveToFile(ArqConf); MessageDlg(´Não foi possível encontrar o arquivo de configuração, o sistema vai criar um pré-configurado para acessa a BASE DE DADOS no endereço: ´+pChar(PathTemp)+´ tente abrir novamente o sistema, se o problema persistir entre em contato com desenvolvedor´,mtError,[mbOK],0); Application.Terminate; end; end; end; (* LoadConnection *)
para chamar a procedure é bem simples, basta colocar no onCreate do DataModule:
LoadConnection(SConn);//Onde SConn é o nome do componente de conexão...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)