Şifreli Accesse Adoconnection ile bağlanma

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
MoSoft
Üye
Mesajlar: 80
Kayıt: 10 Nis 2005 10:45
Konum: Askerden....
İletişim:

Şifreli Accesse Adoconnection ile bağlanma

Mesaj gönderen MoSoft »

Bir access veri tabanına şifre koyup buna adoconnection ile bağlanmayı tane tane anlatabilirseniz çok makbule geçer şimdiden cevaplarınıza teşekkür ederim.
Şafak 300 ( 10.04.2005) dü artık Yok....

http://www.ucretsizyazilim.com
Kısaca Ben : http://www.google.com.tr/search?hl=tr&q ... 5%9F&meta=
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Access ten şifre verilmesi:
1-Access açılır
2-Dosya->Aç menüsünden dosya seçilir ve özel konumda açılır.
3-Araçlar->Güvenlik->Veri Tabanı Parolasını Belirle seçeneğinden şifre verilir
4-Access kapatılır.

Buna delphiden bağlantı kurma. Ben Jet ile şifreli access veri tabanlarına bağlantı kuramadım o yüzden ODBC üzerinden bağlantı kurulumundan bahsedeceğim:
1-ConnectionString özelliği için ingilizce ve Türkçe sistemlerde ODBC değeri değişecek ve tek bir standart üzerinden gitmek hata olacaktır. Bunun için Registry'den gereken değer okunmalıdır.

Kod: Tümünü seç

procedure TVeri.DataModuleCreate(Sender: TObject);
var Reg:TRegistry; Degerler:TStringList; i,n:Integer;
  St,BaglantiSt,Yol,Sifre,VeriTabani:String;
begin
  CloseAll; MemurEklendi:=False;
  Reg:=TRegistry.Create;
  Degerler:=TStringList.Create;
  St:='Provider=MSDASQL.1;Password=%s;Persist Security Info=True;Extended Properties="DSN=%s;DBQ=%s;DefaultDir=;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=%s;UID=admin;"';
//şifre,Bağlantı stringi,veritabanı,şifre
  Yol:='';
  Sifre:='1';//<-Access şifresi
  VeriTabani:='Data.mdb';{<-klasörsüz olursa .exe ile aynı klasörde bulunan mdb için çalışır}
  try
    Reg.RootKey:=HKEY_CURRENT_USER;
    if Reg.OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',False) then begin
      Reg.GetValueNames(Degerler); n:=-1;
      for i:=0 to Degerler.Count-1 do if Pos('Access',Degerler[i])>0 then begin
        n:=i;Break;
      end;
      if (n>=0) and (n<Degerler.Count) then BaglantiSt:=Degerler[n]
      else begin
        MessageBox(Application.Handle,'Sistemde yüklü Access sürücüsü bulunamadı!...','Hata',MB_ICONERROR);
        Application.Terminate;
      end;
    end else begin
      MessageBox(Application.Handle,'ODBC sürücüsünde hata var..','Hata',MB_ICONERROR);
      Application.Terminate;
    end;
    Baglanti.ConnectionString:=Format(St,[Sifre,BaglantiSt,Yol+VeriTabani,Sifre]);
    OpenAll;
  finally
    Reg.Free;
    Degerler.Free;
  end;
end;
2-Bu kodla şifreli access veritabanına ODBC üzerinden bağlantı kurabilirsin. Kolay gele.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
MoSoft
Üye
Mesajlar: 80
Kayıt: 10 Nis 2005 10:45
Konum: Askerden....
İletişim:

Mesaj gönderen MoSoft »

Bana misrosoft Jet 4.0 ile şifreli bağlantı lazım yorumun için teşekkür ederim. Ama benim işimi görmedi inşallah başkalarına yardımcı olur.
Şafak 300 ( 10.04.2005) dü artık Yok....

http://www.ucretsizyazilim.com
Kısaca Ben : http://www.google.com.tr/search?hl=tr&q ... 5%9F&meta=
Cevapla