共用方式為


CompactDatabase 方法 (SQL Server Compact)

CompactDatabase 方法會回收本機 SQL Server Compact 3.5 資料庫中浪費的空間。此方法也可以用於變更資料庫的定序順序、加密及密碼的設定。

注意

除非目的地連接字串明確指定了密碼,否則產生的資料庫將不會加密,不論來源是否加密都一樣。

語法

object.CompactDatabase(SourceConnection, DestConnection)

參數

參數

描述

SourceConnection

指定連接到要壓縮的來源資料庫。如果 SourceConnection 指定的資料庫已經開啟,則會發生錯誤。

DestConnection

指定連接到要以壓縮方式建立的目的地資料庫。如果由 DestConnection 指定的資料庫已經存在,或是已存在具有該名稱的其他檔案,將會發生錯誤。

範例

HRESULT CompactDatabase(BSTR SourceConnection, BSTR DestConnection);

備註

SourceConnection 和 DestConnection 參數會設定來源和目的地資料庫的屬性。下表列出您可以指定給各項參數的連接屬性。其他連接屬性都會被忽略。

屬性

描述

Provider

指示連接到資料來源時要使用的提供者名稱。如果此屬性未設定,則使用 SQL Server Compact 3.5 的 OLE DB 提供者。如果來源字串中的提供者名稱不同於目標字串中的提供者名稱,則會發生錯誤。

Data Source

指示資料庫的名稱。來源和目的地連接資訊都需要此屬性。

Locale Identifier

指示新資料庫的地區設定識別碼 (LCID)。如果此屬性未設定,則目的地資料庫將使用與系統地區設定相同的 LCID。

Locale Identifier 設定在資料庫中進行字串比較時所根據的定序順序。

SSCE:Database Password

如果資料庫以密碼保護,則指示密碼。如果來源資料庫含有密碼,就必須提供來源資料庫密碼。如果 DestConnection 字串中省略此參數,新的資料庫將不會加密。如果您要移除目的地資料庫的密碼,資料庫密碼必須設定為空字串。如果提供了空白密碼,資料庫將不會加密。資料庫密碼的長度可以多達 40 個字元。

SSCE:encryption mode

or

encryption mode

這個屬性的值為:

engine default

platform default

ppc2003 compatibility

預設值為 platform default。

SSCE:Encrypt Database

指示是否要對新的資料庫進行加密。如果 DestConnection 字串中沒有此參數,則新資料庫將使用與來源資料庫相同的加密方式。此屬性為布林值,若要進行加密,則應設定為 TRUE,若不進行加密,則應設定為 FALSE。

附註附註
如果指定 SSCE:Database Password,無論是否指定 SSCE:Encrypt Database,資料庫永遠都是加密的。

SSCE:Temp File Directory

指定暫存資料庫的位置。如果 DestConnection 字串中沒有此參數,會以目前資料庫位置做為暫存資料庫的位置。

ssce: case sensitive

判斷資料庫是否區分大小寫的布林值。必須設為 true 才能啟用區分大小寫,或設為 false 表示不區分大小寫。若未指定,則預設值為 false。

附註附註
從 SQL Server Compact 3.5 SP1 版本開始導入了這個屬性。如需詳細資訊,請參閱<使用定序 (SQL Server Compact)>。

這支援地區設定識別碼。請使用唯一的 LCID 做為 Locale Identifier 的值。如需 LCID 值的清單,請參閱<支援的定序 (SQL Server Compact)>。您必須確定要建立資料庫的裝置支援該地區設定。

如果建立資料庫時未指定任何 LCID 值,SQL Server Compact 3.5 會使用系統的地區設定。這和舊版不同,舊版中若未設定,就會使用英文地區設定。

重要

Compact 作業完成前應用程式不正常終止,系統中將留下暫存資料庫檔案。此檔案的名稱為 <filename>pack.sdf,必須手動移除。

請參閱

其他資源

引擎物件程式設計 (SQL Server Compact)

ErrorRecords 屬性 (SQL Server Compact)