C 壓縮MDB資料庫

2021-08-04 16:04:40 字數 1335 閱讀 2568

mdb資料庫刪除了行記錄之後,資料庫大小不會減少,原因是沒有對資料庫進行整理,之前的資料快取一直留在資料庫中。可以用access自帶的清理快取(壓縮資料看)工具進行清理。

2003版本

2007版本

在**中也可以解決這個問題

using jro;
public

void

compact(string mdbpath)

//宣告臨時資料庫的名稱

string bak = datetime.now.tofiletime() + ".bak";//自定義名稱

bak = mdbpath.substring(0, mdbpath.lastindexof('\\') + 1) + bak;

//定義臨時資料庫的連線字串

string bakconn = "provider=microsoft.jet.oledb.4.0;data source=" + bak;

//定義目標資料庫的連線字串

string mdbconn = "provider=microsoft.jet.oledb.4.0;data source=" + mdbpath;

//建立乙個jetengineclass物件的例項

jro.jetengineclass jt = new jro.jetengineclass();

//使用jetengineclass物件的compactdatabase方法壓縮修復資料庫

jt.compactdatabase(mdbconn, bakconn);

//拷貝臨時資料庫到目標資料庫(覆蓋)

file.copy(bak, mdbpath, true);

//最後刪除臨時資料庫

file.delete(bak);

m_progressbar.writelogwithoutrunning("\t\t壓縮資料庫成功。");

}catch (exception ex)

}

注:

1、jor命名空間需要引用c:\program files\common files\system\ado\msjro.dll。

2、需要將引用後的dll的嵌入互操作型別設定為false

3、找不到可安裝的 isam 主要是資料庫連線串,存在問題(例如:data source 中間有空格.)。

ArcSDE轉本地MDB資料庫

乙個轉換類,將arcsde上特定要素資料集轉到本地的mdb中 using system using system.collections.generic using system.io using system.threading using esri.arcgis.geodatabase usin...

C 壓縮Access資料庫

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

mdb檔案匯入SQLServer資料庫中

mdb microsoft database 格式是microsoft access軟體使用的一種儲存格式,mdb格式的資料庫是一種關聯式資料庫。建立的資料庫名稱要與mdb檔案的名字相同 example example 任務 匯入資料 選擇資料來源 microsoft access 選擇mdb檔案位...