CompactDatabase 方法 (SQL Server Compact)

CompactDatabase 方法回收本地 SQL Server Compact 4.0 数据库中的浪费空间。该方法还用于更改数据库的排序顺序、加密和密码设置。

备注

除非目标连接字符串显式指定了密码,否则无论是否加密源数据库,都不会对结果数据库进行加密。

语法

object.CompactDatabase(SourceConnection, DestConnection)

参数

参数

说明

SourceConnection

字符串值,指定与要压缩的源数据库的连接。如果 SourceConnection 指定的数据库已经打开,将出现错误。

DestConnection

字符串值,指定与要通过压缩创建的目标数据库的连接。如果由 DestConnection 指定的数据库已存在或者已有一个同名文件,便会发生错误。

示例

HRESULT CompactDatabase(BSTR SourceConnection, BSTR DestConnection);

注释

SourceConnection 和 DestConnection 参数指定源数据库和目标数据库的属性。下表列出了可以为每个参数指定的连接属性。所有其他连接属性都将被忽略。

属性

说明

Provider

指示用于连接到数据源的提供程序的名称。如果未指定此属性,将假定为 OLE DB Provider for SQL Server Compact 4.0。如果源字符串中提供程序的名称与目标字符串中提供程序的名称不同,将出现错误。

Data Source

指示数据库的名称。源连接信息和目标连接信息都需要使用此属性。

Locale Identifier

指示新数据库的区域设置标识符 (LCID)。如果省略此属性,目标数据库将具有与系统区域设置相同的 LCID。

Locale Identifier 指定数据库中字符串比较的排序顺序。

SSCE:Database Password

在数据库受密码保护时,指示密码。如果源数据库包含密码,则必须提供源数据库密码。如果从 DestConnection 字符串中省略此参数,将不加密新数据库。若要从目标数据库中删除密码,数据库密码必须设置为空字符串。如果提供空密码,将不加密数据库。数据库密码最大长度为 40 个字符。

SSCE:encryption mode

or

encryption mode

此属性的值为:

engine default

platform default

默认值为 platform default。

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 4.0 将使用系统区域设置。这与早期版本不同,早期版本在未提供 LCID 值时总是使用“英语”区域设置。

重要

在完成 Compact 操作之前异常终止应用程序会使临时数据库文件保留在系统中。此文件命名为 <文件名>pack.sdf,必须手动删除。

请参阅

参考

ErrorRecords 属性 (SQL Server Compact)

其他资源

Engine 对象编程 (SQL Server Compact)