轉(zhuǎn)自(http://blog.sina.com.cn/s/blog_4a8552f801008ilq.html)
MS Access 2000的數(shù)據(jù)庫文件
在使用MS Access 2000的過程中,我們發(fā)現(xiàn)隨著時間的推移,由于Access會給數(shù)據(jù)庫自動保留一份副本集,這樣造成了數(shù)據(jù)庫占用的空間越來越大。如果在Access環(huán)境中,我們可以通過點選菜單(工具-數(shù)據(jù)庫實用工具-壓縮和修復(fù)數(shù)據(jù)庫),來將Access數(shù)據(jù)庫壓縮。那么通過Delphi能不能壓縮和修復(fù) Access數(shù)據(jù)庫呢?答案是肯定的。利用下面的這個函數(shù),成功的實現(xiàn)了實現(xiàn)這個功能。代碼如下:
Function CompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean;
const
sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
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;
使用該函數(shù)的例子如下:
if CompactAndRepair('d:\db\Old.mdb', 'd:\db\New.mdb') then
ShowMessage('操作成功')
else
ShowMessage('操作失敗');
應(yīng)注意的是,在壓縮和修復(fù)數(shù)據(jù)庫的過程中,不能有其它的操作打開該數(shù)據(jù)庫,否則操作會失敗。
另外,要想上面的函數(shù)編譯通過,你需要先把Microsoft Jet and Replication Objects 2.1 Library導(dǎo)入到Delphi中,步驟如下:
1、在Delphi集成開發(fā)環(huán)境中,點選菜單(Project-Import Type Library)。
2、在彈出的對話框中,移動滾動條,找到Microsoft Jet and Replication Objects 2.1 Library。
3、點擊Install按鈕。
然后把JRO_TLB單元添加到你的Delphi應(yīng)用程序中的Uses單元。好了,運行程序試一下吧,數(shù)據(jù)庫文件是不是小了好多呢?
posted on 2010-02-04 14:48
無聲 閱讀(1051)
評論(0) 編輯 收藏 所屬分類:
職場生活