利用JRO壓縮ACCESS資料庫.MDB |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
利用 JRO (Microsoft Jet and Replication Object 壓縮ACCESS資料庫.MDB 壓縮資料庫會重新安排資料庫檔案儲存在磁碟中的位置,以更有效率地使
用磁碟檔案空間,另外,你也可以用它來複製資料庫。 以下範例展示了壓縮 c:\data\northwind.mdb 資料庫,壓縮後的資料庫
會建立於 c:\data\newnorth.mdb。在使用下列範例前,你必須 import
JRO type library:開啟一個新的專案,點選 Project | Import Type
Library, 選擇 Micro$oft Jet and Replication Objects 2.1 Library
(Version 2.1),然後按 Create 便可以產生 JRO_TLB.pas。 Uses
JRO_TLB; const
Provider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
SrcMDB = 'c:\data\northwind.mdb';
DstMDB = 'd:\data\newnorth.mdb'; procedure TForm1.Button1Click(Sender: TObject);
var
JetEng : JetEngine;
Src : WideString;
Dest : WideString;
begin
JetEng := CoJetEngine.Create;
Src := Provider 'Data Source=' SrcMDB;
Dest := Provider 'Data Source=' DstMDB; try
If FileExists(DstMDB) Then
DeleteFile(DstMDB);
JetEng.CompactDatabase(Src, Dest);
finally
JetEng := Nil;
end;
end; 備註: 當一個資料庫被壓縮之後時,標記成已刪除的記錄會真正被除去,而自動
遞增欄位則會被重新指定為下一個連續的序號,也就是目前的最大值 1。
比如說,資料表有十筆記錄,其自動編號欄位均為連續,如果刪除掉最後
三筆,則下次新增一筆記錄時編號為11,如果先把資料庫壓縮,那麼新增
時編號就是 8。 由於資料庫統計被更新了,在查詢最佳化中使用的資料表統計也會被更新
,所有的查詢都會被標上旗號,所以這些查詢會在下次被執行時重新編譯
過。
------
~~~Delphi K.Top討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |