adoconnection bilgisini ini dosyasından okutma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

adoconnection bilgisini ini dosyasından okutma

Mesaj gönderen ertline »

merhaba arkadaşlar,
adoconnection na ini dosyasından nasıl bağlanabilirim?
IB nesnelerini kullandım hep, ado ve mssql e yeni başladım, connection ı bir ini dosyasından almak istiyorum, forumda aradım ama tam anlayabileceğim bir bilgiye ulaşamadım,
yapan arkaşdaşlar yardımcı olursa sevinirim

iyi çalışmalar.
"Bilginin Doruğuna Hep Birlikte..."
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: adoconnection bilgisini ini dosyasından okutma

Mesaj gönderen ikutluay »

merhaba

benim ikglobals diye bir unitim var. onun içindede global "constr1" diye string bir değişkenim var.

prokenin kodlarında
******
Application.Initialize;
constr1 :=ReadIni('Settings','constr1','');
Dm.ConSql.ConnectionString:=constr1;
***

diye alıyorum.

Readini benim yazdığım bir kod parçası; onuda ikfileutils.pas diye bir dosyaya kaydettim.

Kodu ise şöyle

Kod: Tümünü seç

(****************************************************************************************)
function ReadIni(Section:String;Key:String;Value:String):String;
var
   appINI : TIniFile;
begin
 if Section='' then Section:='Settings';
 appINI := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ;
 try
     Result  :=appINI.ReadString(Section,Key,'');
 Finally
     appIni.Free;
  end;
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: adoconnection bilgisini ini dosyasından okutma

Mesaj gönderen csunguray »

TADOConnection bileşeninizin BeforeConnect eventına aşağıdakileri yazın.

Kod: Tümünü seç

procedure TDM.ADOConnection1BeforeConnect(Sender: TObject);
var
  IniFile : TIniFile;
  DB_DBServerType: String;
  DB_AuthType: Integer;
  DB_Host: String;
  DB_Database: String;
  DB_User: String;
  DB_Password: String;
begin
  if FileExists('ayarlarim.ini') then
  begin
    IniFile := TIniFile.Create('ayarlarim.ini');
    try
      DB_DBServerType := IniFile.ReadString('Connection', 'DBServerType', 'MSSQL');
      DB_AuthType := StrToIntDef(IniFile.ReadString('Connection', 'AuthType', '1'), 1);
      DB_Host := IniFile.ReadString('Connection', 'Host', '(local)');
      DB_Database := IniFile.ReadString('Connection', 'Database', UpperCase(AppShortName));
      DB_User := IniFile.ReadString('Connection', 'User', 'sa');
      DB_Password := IniFile.ReadString('Connection', 'Password', '123456');
      ADOConnection1.ConnectionString := AdoConnectString(
        CurrentParam.DB_AuthType = 0,
        CurrentParam.DB_Host,
        CurrentParam.DB_Database,
        CurrentParam.DB_User,
        CurrentParam.DB_Password
        );
    finally
      IniFile.Free;
    end;
  end else
  begin
    // raise Exception.Create('Program klasöründe veritabanı bağlantı ayar dosyası bulunamadı!');
  end;
end;

function TDM.AdoConnectString(WinAuth: Boolean;
                          HostName, DbName, UserName, Password: String): String;
begin
  Result := 'Provider=SQLOLEDB;' + 'Initial Catalog=' + DbName + ';';
  if HostName <> '' then Result := Result + 'Data Source=' + HostName + ';';
  if WinAuth or (UpperCase(Password) = 'WINDOWS') then
  begin
    Result := Result + 'Integrated Security=SSPI;' +
                       'Persist Security Info=False;';
  end else
  begin
    Result := Result + 'Persist Security Info=True;';
    if UserName <> '' then Result := Result + 'User ID=' + UserName + ';';
    if Password <> '' then Result := Result + 'Password=' + Password + ';';
  end;
end;

ayarlarim.ini dosyası içeriği:

Kod: Tümünü seç

[Connection]
DBServerType=MSSQL
Host=SERVERNAME
AuthType=1
User=sa
Password=12345
Database=DBNAME
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Cevapla