GARANTIR DESCONTO

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.


Bruno6652

Bruno6652

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.


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...
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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar