SQL Server Native Client 数据源对象 (OLE DB)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 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 接口集,例如 SQL Server。 创建提供程序的数据源对象的实例是 SQL Server Native Client 使用者的第一项任务。
每个 OLE DB 访问接口都为自身声明一个类标识符 (CLSID)。 SQL Server Native Client OLE DB 访问接口的 CLSID 是 C/C++ GUID CLSID_SQLNCLI10(符号SQLNCLI_CLSID将解析为引用的 sqlncli.h 文件中的正确 progid)。 通过 CLSID,使用者使用 OLE CoCreateInstance 函数生成数据源对象的实例。
SQL Server Native Client 是进程内服务器。 SQL Server Native Client OLE DB 访问接口对象的实例是使用CLSCTX_INPROC_SERVER宏创建的,用于指示可执行上下文。
SQL Server Native Client OLE DB 访问接口数据源对象公开了允许使用者连接到现有 SQL Server 数据库的 OLE DB 初始化接口。
通过 SQL Server Native Client OLE DB 访问接口建立的每个连接都会自动设置以下选项:
SET ANSI_WARNINGS ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_NULL_DFLT_ON ON
SET QUOTED_IDENTIFIER ON
SET CONCAT_OF_NULL_YIELDS_NULL ON
此示例使用类标识符宏创建 SQL Server Native Client OLE DB 访问接口对象并获取对其 IDBInitialize 接口的引用。
IDBInitialize* pIDBInitialize;
HRESULT hr;
hr = CoCreateInstance(CLSID_SQLNCLI10, NULL, CLSCTX_INPROC_SERVER,
IID_IDBInitialize, (void**) &pIDBInitialize);
if (SUCCEEDED(hr))
{
// Perform necessary processing with the interface.
pIDBInitialize->Uninitialize();
pIDBInitialize->Release();
}
else
{
// Display error from CoCreateInstance.
}
成功创建 SQL Server Native Client OLE DB 访问接口数据源对象的实例后,使用者应用程序可以通过初始化数据源和创建会话来继续。 OLE DB 会话提供允许数据访问和操作的接口。
SQL Server Native Client OLE DB 访问接口将其第一个连接到指定 SQL Server 实例,作为成功初始化数据源的一部分。 只要保持对数据源初始化接口的引用,或者在调用 IDBInitialize::Uninitialize 方法前,这一连接会一直保持。