Fórum receber valor do arquico ini (dbexpress) #245028

29/07/2004

0

Boa Noite Amigos

Criei um arquivo ini qdo executo a minha aplicação, só que agora quero q meu sistema pegue os dados da ini para jogar no SqlConection, veja como estou procedendo:

procedure TDataModule1.SQLConnection1BeforeConnect(Sender: TObject);
begin
if not FileExists(´C:\Arquivos de programas\Diamond\IniDiamond.Ini´) then
begin
ArqIni:= TIniFile.Create(´C:\Arquivos de programas\Diamond\IniDiamond.Ini´);
ArqIni.WriteString(´BancoDados´, ´Diretorio´, ´C:\Arquivos de programas\Diamond\Chaves.gdb´);
end;
ArqIni:= TIniFile.Create(´C:\Arquivos de programas\Diamond\Chaves.gdb´); //aqui acho q eu deveria receber o valor já existente no ini mas não sei como fazer
with Sqlconnection1, Params do
begin
Clear;
Add(´DriverName=Interbase´);
Add(´Database=´+ArqIni.ReadString(´BancoDados´, ´Diretorio´, ´C:\Arquivos de programas\Diamond\Chaves.gdb´));
Add(´RoleName=RoleName´);
Add(´User_Name=SYSDBA´);
Add(´Password=masterkey´);
Add(´ServerCharset=´);
Add(´SQLDialect=3´);
Add(´BlobSize=-1´);
Add(´CommitRetain=false´);
Add(´WaitOnLocks=False´);
Add(´ErrorResourceFile=´);
Add(´LocaleCode=0000´);
Add(´Interbase Translaction=ReadCommited´);
Add(´Trim char=False´);
end;
end;

agora quero que o database receba o endereço q esta na ini que criei, alguém tem uma dica???

obrigado.


Rogsystem

Rogsystem

Responder

Posts

29/07/2004

Vinicius2k

Colega,

Acho q vc não está trabalhando corretamente com o .ini... neste ponto :
ArqIni:= TIniFile.Create(´C:\Arquivos de programas\Diamond\Chaves.gdb´);
vc o está recriando, e com um nome diferente do inicial (IniDiamond)... e ele provavelmente não existe...

Veja:
Eu tenho o seguinte arquivo .ini :
; Arquivo de configuração de conexão com o Banco de Dados
[Connection]
DriverName = Interbase
GetDriverFunc = getSQLDriverINTERBASE
LibraryName = dbexpint.dll
VendorLib = fbclient.dll
Database = localhost:d:\project\efaz\data\efazdb.fdb
ServerCharSet = WIN1252
SQLDialect = 3
CommitRetain = False
Interbase TransIsolation = ReadCommited


e faço a leitura desta forma, não uso todos os parametros como vc, mas o princípio é o mesmo :
procedure Tdmd.DataModuleCreate(Sender: TObject);
var DBIni: TIniFile;
    FileName: String;
begin
  FileName:= ExtractFilePath(Application.ExeName)+´database.ini´;
  DBIni:= TIniFile.Create(FileName);
    try
      with dbc do
        begin
          DriverName:=    DBIni.ReadString(´Connection´, ´DriverName´, ´´);
          GetDriverFunc:= DBIni.ReadString(´Connection´, ´GetDriverFunc´, ´´);
          LibraryName:=   DBIni.ReadString(´Connection´, ´LibraryName´, ´´);
          VendorLib:=     DBIni.ReadString(´Connection´, ´VendorLib´, ´´);
          Params.Values[´Database´]:= DBIni.ReadString(´Connection´, ´Database´, ´´);
          Params.Values[´ServerCharSet´]:= DBIni.ReadString(´Connection´, ´ServerCharSet´, ´´);
          Params.Values[´SQLDialect´]:= DBIni.ReadString(´Connection´, ´SQLDialect´, ´´);
          Params.Values[´Interbase TransIsolation´]:= DBIni.ReadString(´Connection´, ´Interbase TransIsolation´, ´´);
        end;
    finally
      DBIni.Free;
    end;
end;


Espero ter ajudado...
T+


Responder

Gostei + 0

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

Aceitar