Fórum DM.Conexao.Params.LoadFromFile('.\conexao.ini'); #393229

31/12/2010

0

Criei uma conexão dinâmica p/ meu aplicativo
funciona assim:
criei um arquivo texto chamado conexao.ini
um formulário chama Configura conexão para digitarmos o endereço do banco e salvar no arquivo texto 'conexao.ini'...mais o problema é o seguinte:
toda vez que executo o meu aplicativo ele não está lendo o arquivo texto conexao.ini que já está com todas as informações salvas.. e abre o formulario de configuração de do banco o 'Configuraconexao' aparece tudo configurado o camininho e tudo dou  ok ai entra.VEJA O CÓDIGO ABAIXO:


código para ler o arquivo de conexao 'conexao.ini' já com todas as informações gravadas

procedure TFPrincipal.FormShow(Sender: TObject);
begin
DM.Conexao.Connected:=False;
StrConexao:=DM.Conexao.Params.Text;
DM.Conexao.Params.Clear;

Try
DM.Conexao.Params.LoadFromFile('.\conexao.ini');
DM.Conexao.Connected:=True;
ConexaoFeita:=True;

Except
FConfiguraConexao.ShowModal;

end;

o arquivo de conexao 'conexao.ini' possui:

DriverName=Interbase
DataBase=C:\SGL\Banco\BDLOCADORA.FDB
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=3
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommited
Trim Char=False



o que estou fazendo de errado?
toda vez ele abre o FConfiguraConexao.ShowModal;
e tenho que confirmar o caminho do banco.
Benilton

Benilton

Responder

Posts

01/01/2011

Leandro

Costumo fazer diferente ta ai minha funcao.

adicione no uses (IniFiles)



function GetConectaBanco(ASqlConnection: TSQLConnection; ATypeDatabase: Integer = 0; ASenha: String = '';
  AUsuario: String = ''): Boolean;
var
  lMyIniFile: TIniFile;
begin
  lMyIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'BIConfig.ini');

  if AUsuario = '' then
  begin
    FMenu.LSUtils1.Criptografia.TextoEncrypt := lMyIniFile.ReadString('Connection', 'UserName', '');
    AUsuario := FMenu.LSUtils1.Criptografia.Texto;
  end;

  if ASenha = '' then
  begin
    FMenu.LSUtils1.Criptografia.TextoEncrypt := lMyIniFile.ReadString('Connection', 'Password', '');
    ASenha := FMenu.LSUtils1.Criptografia.Texto;
  end;

  if ATypeDatabase = 0 then
    ATypeDatabase := StrToInt(lMyIniFile.ReadString('Connection', 'TpBancoDados', ''));

  Result := False;

  ALSConnection.SqlConnection := ASqlConnection;

  case ATypeDatabase of
    0:
    begin
      ALSConnection.TypeDataBase := tpPostgresSql;
      ASqlConnection.ConnectionName := 'Devart PostgreSQL';
      ASqlConnection.SQLHourGlass := True;
      ASqlConnection.DriverName := 'DevartPostgreSQL';
      ASqlConnection.GetDriverFunc := 'getSQLDriverPostgreSQL';
      ASqlConnection.LibraryName := 'dbexppgsql.dll';
      ASqlConnection.VendorLib := 'dbexppgsql.dll';
      ASqlConnection.Params.Clear;
      ASqlConnection.Params.Add('database=' + lMyIniFile.ReadString('Connection', 'Database', ''));
      ASqlConnection.Params.Add('user_name=' + AUsuario);
      ASqlConnection.Params.Add('password=' + ASenha);
    end;

    1:
    begin
      ALSConnection.TypeDataBase := tpFirebirdSql;
      ASqlConnection.ConnectionName := 'FBCONNECTION';
      ASqlConnection.SQLHourGlass := True;
      ASqlConnection.DriverName := 'Firebird';
      ASqlConnection.GetDriverFunc := 'getSQLDriverINTERBASE';
      ASqlConnection.LibraryName := 'dbxfb.dll';
      ASqlConnection.VendorLib := 'fbclient.dll';
      ASqlConnection.Params.Clear;
      ASqlConnection.Params.Add('database=' + lMyIniFile.ReadString('Connection', 'Database', ''));
      ASqlConnection.Params.Add('user_name=' + AUsuario);
      ASqlConnection.Params.Add('password=' + ASenha);
    end;
  end;

  try
    ASqlConnection.Open;
    Result := True;
  except
    on E: EDatabaseError do
    begin
      Result := False;
      Funcoes.MessageDlg('Não foi possível conectar ao banco de dados!' + #13 +
        'O sistema será finalizado!' + #13 + #13 +'Mensagem Original:' + E.Message, mtError, [mbOk], 0);
    end;
  end;

  FreeAndNil(lMyIniFile);
end;
Responder

Gostei + 0

03/01/2011

Ale.sjrp

Eu utilizo dessa forma:   procedure TDM.DataModuleCreate(Sender: TObject);
var arq_ini:TIniFile;
    banco:string;
begin
    Conect.Connected := false;
    arq_ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'sistema.ini');
    banco := arq_ini.ReadString('Connect','Diretorio','');
    Conect.DatabaseName  := arq_ini.ReadString('Connect','Diretorio',ExtractFilePath(Application.ExeName)+'DATABASE_SISTEMA.FDB');
    Conect.Connected := true;
    if Conect.Connected = false then
    begin
       Showmessage('Não foi possivel conectar ao Banco de Dados!! Será encerrado a aplicação'+#13+
       'Entre em contato com o Administrado do Software');
       Application.Terminate;
    end;
    IBTran.Active := true;
end     Vc precisa declarar IniFiles na uses do projeto.
Responder

Gostei + 0

03/01/2011

Ale.sjrp

no arquivo .ini deixe assim   [Connect]
Username=SYSDBA
Password=masterkey
HostName=localhost
CharSet=ISO8859_1
SQLDialect=1
Diretorio=D:\Sistemas_Delphi\Informatica\DATABASE_SISTEMA.FDB
Porta=3050
Responder

Gostei + 0

04/01/2011

Benilton

Muito obrigado alexandre consegui fazer o meu código funcionar.

mais testei o seu e funciona perfeitamente.

obrigado.
Responder

Gostei + 0

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

Aceitar