用C 壓縮和修復Access資料庫

2021-05-22 11:28:05 字數 1276 閱讀 1625

介紹

下面這段c# **可以 用來壓縮和修復access資料庫,不管它是乙個簡單的".mdb"還是乙個".mdw"網路共享資料庫,這個過程和你在用ms access應用程式中使用的"工具-資料庫實用工具-壓縮和修復"時執行的操作完全一樣.例項**使用了"遲繫結"(執行中在記憶體中建立com物件), 這樣就不需要在工程中加入com引用了,也不需要在pc上安裝ms access應用程式.只需要乙個jet引擎(jet引擎包含在mdac安裝包中,在windows nt4以後的版本中,系統已經自帶了這個引擎). 背景

不知你是否也厭煩了在工程中加入複雜的 com 庫引用 , 但我相信這個純 .net **將省去額外的互動操作 , rcws 和 com 引用 . 基本上,由於系統中安裝的 microsoft類 庫的不同 ( 例如 :ms office object library 9,10,11 等等 ), 我們也不知道使用者 pc 中安裝的 office 版本 , 所以我們要通過 progid 來訪問 com 物件 , 而不能用 clsid. 例如 , 當呼叫 "

", 時 , 得到的是 excel, 而不管系統中安裝 ms office 的版本 , 當在**中加入 "ms excel 10 object library" 引用時 , 其實只是給應用程式加入了乙個非常受限制的功能 . 所以我們使用sy stem.reflection 和遲繫結 .

1.  例項**

只需呼叫 compactaccessdb 函式即可壓縮和修復目標資料庫 .

2.  引數 :

由於 jet 引擎的限制 , 執行此方法壓縮 access 資料庫會把結果生成為乙個新檔案 , 所以我們要還需要把這個新的 access 檔案拷貝到目的位置覆蓋原來未壓縮檔案 .

當呼叫此方法時請確認被壓縮資料庫無開啟的連線.

**如下 :

///

/// 壓縮資料庫

///

/// 資料庫鏈結

/// 要壓縮的mdb檔案的全名

private

void compactaccessdb(string connectionstring, string mdwfilename)

catch (exception)}

注意事項

jet engine 5 用於 jet4x 資料庫 . 使用時要留意下表 :

jet oledb:engine type

jet x.x format mdb files 1

jet10 2

jet11 3

jet2x 4

jet3x 5

jet4x

C 壓縮和修復Access資料庫

介紹 下面這段c 可以用來壓縮和修復access資料庫,不管它是乙個簡單的 mdb access資料庫還是乙個 mdw 網路共享資料庫,這個過程和你在用ms access應用程式中使用的 工具 資料庫實用工具 壓縮和修復 時執行的操作完全一樣.例項 使用了 遲繫結 執行中在記憶體中建立com物件 這...

用Delphi 壓縮Access資料庫

uses dao97,dao2000 procedure pac bdatabase srcdbname,dstdbname,oldpwd,newpwd string baccess97 boolean true var idbengine dbengine begin if oldpwd then...

C 壓縮Access資料庫

壓縮資料庫 資料庫鏈結 要壓縮的mdb檔案的全名 static void compactaccessdb string dbfilename objjro.gettype invokemember compactdatabase system.reflection.bindingflags.invo...