Arkadaşlar aşağıdaki kodlarla bir access databaseni sıkıştırabiliyorum.Ama bu db şifreli olunca işlem olmuyor haliyle.Bir türlüğ bu fonksiyonun yada procedürün içine şifre olayını dahil edemedim.Bu konuda bilgisi olan arkadaşlar yardım ederlerse sevinirim.
eddest ve edsource mdblerin yollarını yazdığım editlerin adı.
Teşekkürler.
function DatabaseCompact
(const sdbName: WideString) : boolean;
var
JE : TJetEngine; //Jet Engine
sdbTemp : WideString; //TEMP database
sdbTempConn : WideString; //Connection string
const
SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
begin
Result:=False;
sdbTemp := ExtractFileDir(sdbName) +
'TEMP' +
ExtractFileName(sdbName);
sdbTempConn := SProvider + sdbtemp;
if FileExists(sdbTemp) then
DeleteFile(sdbTemp);
JE:= TJetEngine.Create(Application);
try
try
JE.CompactDatabase(SProvider + sdbName, sdbTempConn);
DeleteFile(sdbName);
RenameFile(sdbTemp, sdbName);
except
on E:Exception do
ShowMessage(E.Message);
end;
finally
JE.FreeOnRelease;
Result:=True;
end;
end;
procedure Tfrmhastakayit.Button1Click(Sender: TObject);
var
dbSrc : WideString;
dbDest : WideString;
const
SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=';
begin
dbSrc := SProvider + edSource.Text;
dbDest := SProvider + edDest.Text;
if FileExists(edDest.Text) then
DeleteFile(edDest.Text);
JE.CompactDatabase(dbSrc,dbDest);
end;
Şifreli access databaseni sıkıştırmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- yuksel2004
- Üye
- Mesajlar: 61
- Kayıt: 26 May 2005 08:55
- Konum: Bursa
Şifreli access databaseni sıkıştırmak
Unutmayalım ki bu hayat bir demodur ve tam sürüm kullanabilmek için lisans ücreti ödemememiz düşünülemez.