隨筆-200  評(píng)論-148  文章-15  trackbacks-0
          轉(zhuǎn)自(http://blog.sina.com.cn/s/blog_4a8552f801008ilq.html) MS Access 2000的數(shù)據(jù)庫(kù)文件 在使用MS Access 2000的過程中,我們發(fā)現(xiàn)隨著時(shí)間的推移,由于Access會(huì)給數(shù)據(jù)庫(kù)自動(dòng)保留一份副本集,這樣造成了數(shù)據(jù)庫(kù)占用的空間越來越大。如果在Access環(huán)境中,我們可以通過點(diǎn)選菜單(工具-數(shù)據(jù)庫(kù)實(shí)用工具-壓縮和修復(fù)數(shù)據(jù)庫(kù)),來將Access數(shù)據(jù)庫(kù)壓縮。那么通過Delphi能不能壓縮和修復(fù) Access數(shù)據(jù)庫(kù)呢?答案是肯定的。利用下面的這個(gè)函數(shù),成功的實(shí)現(xiàn)了實(shí)現(xiàn)這個(gè)功能。代碼如下: 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ù)庫(kù)的過程中,不能有其它的操作打開該數(shù)據(jù)庫(kù),否則操作會(huì)失敗。 另外,要想上面的函數(shù)編譯通過,你需要先把Microsoft Jet and Replication Objects 2.1 Library導(dǎo)入到Delphi中,步驟如下: 1、在Delphi集成開發(fā)環(huán)境中,點(diǎn)選菜單(Project-Import Type Library)。 2、在彈出的對(duì)話框中,移動(dòng)滾動(dòng)條,找到Microsoft Jet and Replication Objects 2.1 Library。 3、點(diǎn)擊Install按鈕。 然后把JRO_TLB單元添加到你的Delphi應(yīng)用程序中的Uses單元。好了,運(yùn)行程序試一下吧,數(shù)據(jù)庫(kù)文件是不是小了好多呢?
          posted on 2010-02-04 14:48 無聲 閱讀(1054) 評(píng)論(0)  編輯  收藏 所屬分類: 職場(chǎng)生活
          主站蜘蛛池模板: 沙洋县| 连平县| 乐安县| 清远市| 巴塘县| 富平县| 正阳县| 昂仁县| 健康| 襄汾县| 磐石市| 鄯善县| 金华市| 南通市| 山东省| 化州市| 泸州市| 石屏县| 芷江| 高尔夫| 河源市| 福泉市| 无锡市| 休宁县| 丁青县| 潼南县| 成安县| 共和县| 五家渠市| 永兴县| 山东| 阿拉善右旗| 黄平县| 汽车| 胶州市| 东兰县| 宽甸| 吉林市| 平和县| 平潭县| 冀州市|