Acces Veritabanı Dosyasını Onarmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

Acces Veritabanı Dosyasını Onarmak

Mesaj gönderen Firarist »

Arkadaşlar kullandığım access veritabanlarını onarmak için şöyle bir kod kullanıyorum.
Veritabanına atanmış şifre ile burada yazılan uyuşuyorsa Accessteki "Veritabanı bakım ve onarımı" sihirbazının yaptığı işi gerçekleştiriy

Kod: Tümünü seç

Function CompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean;
const
  sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data.mdb;Jet OLEDB:Database Password=123456;';
var
  oJetEng   : JetEngine;
begin
  sOldMDB := sProvider + 'Data Source=' + sOldMDB;
  sNewMDB := sProvider + 'Data Source=' + sNewMDB;
    try
      oJetEng := CoJetEngine.Create;
      oJetEng.CompactDatabase(sOldMDB, sNewMDB);
      oJetEng := Nil;
      Result  := True;
    except
      oJetEng := Nil;
      Result  := False;
  end;
end;
Bu fonksiyondaki "Database Password=123456" satırı veritabanında kullandığım şifre olsun. Fakat ben bunu bütün access veritabanlarının onarımında kullanmak istiyorum. Bunun içinde Form'a bir edit koyup kullanıcı atadığı veritabanı şifresini kendisi girsin istiyorum. Çalıştım beceremedim.
Yardımcı olabilir misiniz ?
Başarılar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

burda yapmanız gereken string birleştirme sadece. Kod şuna benzer olmalı.

Kod: Tümünü seç

Function CompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean;  
var
  oJetEng   : JetEngine;
  sProvider : string;
begin
  sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data.mdb;Jet OLEDB:Database Password=' + Edit1.Text +';';
  sOldMDB := sProvider + 'Data Source=' + sOldMDB;
  sNewMDB := sProvider + 'Data Source=' + sNewMDB;
  ...
Kolay gelsin.
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

Mesaj gönderen Firarist »

Teşekkürler sayın hocam. Deneyeceğim. Bu saatte bile hızınızdan hiçbirşey kaybaolmamış :)
Tebrikler. Çalışmalarınızda başarılar diliyorum.
Cevapla