(OLE DB) SQL Server Native Client数据源对象

适用于: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 接口集使用术语数据源,例如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 方法前,这一连接会一直保持 。

本节内容

另请参阅

SQL Server Native Client (OLE DB)