OLE DB 数据源对象 (SQL Server Compact)

在 OLE DB 编程中,数据源对象代表提供程序的基础数据存储区。若要连接到 OLE DB 提供程序,使用者必须先创建并初始化一个数据源对象实例。

SQL Server Compact 数据源对象

在 Microsoft SQL Server Compact 4.0 中,通过调用 OLE CoCreateInstance 函数,再传递 OLE DB Provider for SQL Server Compact 4.0 的 CLSID(类标识符,这里是 CLSID_SQLSERVERCE)来创建数据源对象。因为 SQL Server Compact 4.0 是一个进程内服务器,所以使用 CLSCTX_INPROC_SERVER 宏创建 SQL Server Compact 4.0 OLE DB 对象的实例,以表示可执行文件上下文。

SQL Server Compact 4.0 只使用 DBPROP_INIT_DATASOURCE 属性来指定所需的数据源。此属性的值是要打开的数据库文件的完整路径。在设置此属性后,使用者将初始化数据源对象。这将建立使用者和 SQL Server Compact 4.0 之间交换数据所需的环境。在初始化数据源对象后,使用者可以获得有关数据存储区的自描述信息,但尚不能访问数据。此数据源对象随后可用来创建一个或多个会话对象。这些对象又会被用来创建必需的事务、命令和行集。

使用 OLE DB Provider for SQL Server Compact 4.0,您还可以新建数据库。有关详细信息,请参阅使用 OLE DB 创建数据库

另外,还支持受密码保护的数据库。使用此安全功能,在初始化数据源对象时必须提供密码。有关详细信息,请参阅通过 OLE DB 访问受密码保护的数据库

数据源对象的限制

OLE DB Provider for SQL Server Compact 中的数据源对象有下列限制:

  • OLE DB 中所定义的目录概念在 SQL Server Compact 中并不适用。DBPROP_INIT_DATASOURCE 属性定义了要使用的数据库,OLE DB Provider for SQL Server Compact 4.0 将此数据库视为当前目录。

  • 不支持更改当前数据存储区的功能。要更改数据存储区的客户端必须取消初始化数据源对象,设置新的数据存储区名称,再重新初始化数据源对象。

提供程序特定的数据源属性

在提供程序特定的属性集 DBPROPSET_SSCE_DBINIT 中,SQL Server Compact 4.0 支持下列提供程序特定的属性:

属性

定义

DBPROP_SSCE_AUTO_SHRINK_THRESHOLD

数据库文件发生自动收缩的可用空间百分比阈值,超出此值,则发生自动收缩。值为 100 将禁用自动收缩功能。如果未指定,默认值为 60。

DBPROP_SSCE_DBCASESENSITIVE

一个用于确定数据库排序规则是否区分大小写的布尔值。必须设置为 true 以启用区分大小写的排序规则,或者设置为 false 以启用不区分大小写的排序规则。如果未指定,则默认值为 false。

注意注意
从 SQL Server Compact SP1 版本开始,引入了此属性。有关详细信息,请参阅使用排序规则 (SQL Server Compact)

DBPROP_SSCE_DBPASSWORD

数据库密码,最多包含 40 个字符。如果未指定,默认值为没有密码。如果对数据库启用加密功能,此属性为必需的。如果指定密码,将对数据库启用加密功能。有关详细信息,请参阅通过 OLE DB 访问受密码保护的数据库

DBPROP_SSCE_DEFAULT_LOCK_ESCALATION

在试图从行升级到表或从页升级到表之前,事务将获得的锁数。如果未指定,默认值为 100。

DBPROP_SSCE_DEFAULT_LOCK_TIMEOUT

事务等待锁的默认毫秒数。如果未指定,则对于台式机和设备,默认值分别为 5000 毫秒和 2000 毫秒。

DBPROP_SSCE_ENCRYPTIONMODE

用于保护数据库文件的加密类型。有关加密模式的详细信息,请参阅访问接口特定的属性 (OLE DB) 中的说明。

DBPROP_SSCE_FLUSH_INTERVAL

指定所有提交事务刷新到磁盘之前的间隔时间(秒)。如果未指定,默认值为 10。

DBPROP_SSCE_MAXBUFFERSIZE

数据库的最大大小 (MB)。如果未指定,默认值为 640。

DBPROP_SSCE_MAX_DATABASE_SIZE

数据库的最大大小 (MB)。如果未指定,默认值为 128。

DBPROP_SSCE_TEMPFILE_DIRECTORY

临时数据库的位置。如果未指定,默认情况下,将使用数据源属性中指定的数据库来进行临时存储。有关详细信息,请参阅使用 OLE DB 指定临时数据库的位置临时数据库

DBPROP_SSCE_TEMPFILE_MAX_SIZE

临时数据库的最大大小 (MB)。