SQL Server Native Client数据源属性 (OLE DB)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除 SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server

SQL Server Native Client OLE DB 访问接口实现数据源属性,如下所示。

属性 ID 说明
DBPROP_CURRENTCATALOG R/W:读/写 默认值:无

说明:DBPROP_CURRENTCATALOG 的值报告SQL Server Native Client OLE DB 提供程序会话的当前数据库。 设置该属性值与使用 Transact-SQL USE database 语句设置当前数据库的效果相同。

从 SQL Server 2005 (9.x) 开始,如果调用 sp_defaultdb,并以小写字母指定数据库名称,即使该数据库名称最初是使用大小写混合形式创建的,DBPROP_CURRENTCATALOG 仍将以小写字母返回该名称。 对于 SQL Server 的早期版本,DBPROP_CURRENTCATALOG 将返回预期的大小写混合形式。
DBPROP_MULTIPLECONNECTIONS R/W:读/写 默认值:VARIANT_FALSE

说明:如果将 DBPROP_MULTIPLECONNECTIONS 设置为 VARIANT_TRUE,当连接运行的命令未生成行集或生成的行集不是服务器游标时,执行其他命令时将新建一个连接,以便执行该命令。

如果DBPROP_MULTIPLECONNECTION VARIANT_FALSE或某个事务在连接上处于活动状态,SQL Server Native Client OLE DB 提供程序将不会创建另一个连接。 如果VARIANT_FALSE DBPROP_MULTIPLECONNECTIONS,SQL Server Native Client OLE DB 访问接口将返回DB_E_OBJECTOPEN;如果存在活动事务,则返回E_FAIL。 事务和锁定是在每个连接的基础上通过 SQL Server 来管理的。 如果生成第二个连接,则该独立连接上的命令不能共享锁定。 若要确保一个命令不会阻塞另一个命令,请对其他命令所请求的行保持锁定。 当创建多个会话时,将同样保持该锁定。

每个会话都具有一个单独的连接。

在提供程序特定的属性集DBPROPSET_SQLSERVERDATASOURCE中,SQL Server Native Client OLE DB 访问接口定义了以下其他数据源属性。

属性 ID 说明
SSPROP_ENABLEFASTLOAD R/W:读/写 默认值:VARIANT_FALSE

说明:若要从内存启用大容量复制,应将 SSPROP_ENABLEFASTLOAD 属性设置为 VARIANT_TRUE。 对数据源设置该属性之后,使用者可通过新建的会话访问 IRowsetFastLoad 接口。

如果将该属性设置为 VARIANT_TRUE,则可以通过请求 IID_IRowsetFastLoad 接口或将 SSPROP_IRowsetFastLoad 设置为 VARIANT_TRUE,利用 IOpenRowset::OpenRowset 来使用 IRowsetFastLoad 接口 。
SSPROP_ENABLEBULKCOPY R/W:读/写 默认值:VARIANT_FALSE

说明:若要从文件启用大容量复制,应将 SSPROP_ENABLEBULKCOPY 属性设置为 VARIANT_TRUE。 对数据源设置该属性之后,使用者可以访问与会话位于同一级别的 IBCPSession 接口。

此外,还必须将 SSPROP_IRowsetFastLoad 设置为 VARIANT_TRUE。

另请参阅

数据源对象 (OLE DB)