Delphi 收縮Access數據庫

      我自己在做一個自己用的個人理財系統時,由於想方便程序,所以使用了Acess數據庫,使用方便。本是沒什麼事,做完了之後就突然想到我之前做的一些使用SQL數據庫的程序時,偶爾刪除大量數據時要收縮下數據庫,我就自己沒事收縮下Acess數據庫,沒想到居然小了一半,這還只是我測試時使用的數據,如果長此以往那空間不是浪費太大了。

      之後我就去找了好多的用命令收縮數據庫的方法,但是找了好多,大體都是兩種,一種是CompactDatabase(原數據庫文件,新數據庫文件,原密碼,新密碼,還有一個參數不太懂)。但是這種一直提示無效的參數數目。

      另一種就是我今天剛測試成功的。

var
  strS:string;//原數據庫
  strT:string;//收縮完的數據庫
  jro:OleVariant;
begin
  jro:=createoleobject( 'jro.jetengine');
    strS:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/11.mdb';
    strT:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/22.mdb';
    jro.CompactDatabase(strS,strT);
end;

不過在這之前我也有測試過類似的方法,但是卻提示‘找不到可安裝的ISAM’。後來找下類似的問題才知道是由於空格的原因,因爲是在網上覆制的,所以裏面的空格會有問題,主要是像Data Source這種本身單詞有空格的,必須保證他們蹭的空格只有一個英文下的空格。

還有的網上的strT裏寫的是:strT:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/22.mdb;Jet OLEDB:Engine Type=4';,但是這卻會提示版本不符的提示,可能是我的版本太低了,所以我把後面那版本的去掉。另外的數據庫的連接問題和數據庫文件的覆蓋網上有很多可以參考,我就不在多這提了。

希望能給讀者方便

發佈了6 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章