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.
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
Curtir tópico
+ 0
Responder
Posts
29/07/2004
Vinicius2k
Colega,
Acho q vc não está trabalhando corretamente com o .ini... neste ponto :
Veja:
Eu tenho o seguinte arquivo .ini :
e faço a leitura desta forma, não uso todos os parametros como vc, mas o princípio é o mesmo :
Espero ter ajudado...
T+
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
Clique aqui para fazer login e interagir na Comunidade :)