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)。 |