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,必須手動移除。