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