数据源对象 (OLE DB)

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

下载 OLE DB 驱动程序

适用于 SQL Server 的 OLE DB 驱动程序将数据源一词用于 OLE DB 接口集,这些接口用于建立指向某一数据存储的链接,例如 SQL Server。 创建访问接口的数据源对象的实例是 OLE DB Driver for SQL Server 使用者的第一个任务。

每个 OLE DB 访问接口都为自身声明一个类标识符 (CLSID)。 适用于 OLE DB Driver for SQL Server 的 CLSID 是 C/C++ GUID CLSID_MSOLEDBSQL(符号 MSOLEDBSQL_CLSID 将解析为所引用的 msoledbsql.h 文件中的正确 progid)。 通过 CLSID,使用者使用 OLE CoCreateInstance 函数生成数据源对象的实例。

OLE DB Driver for SQL Server 是进程内服务器。 适用于 SQL Server 的 OLE DB 驱动程序对象的实例使用 CLSCTX_INPROC_SERVER 宏创建,以便指示可执行上下文。

适用于 SQL Server 的 OLE DB 驱动程序数据源对象公开 OLE DB 初始化接口,使用者可使用这些接口连接到现有 SQL Server 数据库。

通过 OLE DB Driver for SQL Server 建立的每个连接都自动设置以下选项:

  • 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

此示例使用类标识符宏来创建 OLE DB Driver for SQL Server 数据源对象并获取对其 IDBInitialize 接口的引用。

IDBInitialize*   pIDBInitialize;
HRESULT          hr;

hr = CoCreateInstance(CLSID_MSOLEDBSQL, 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 的 OLE DB 驱动程序数据源对象的实例后,使用者应用程序可通过初始化数据源和创建会话来继续。 OLE DB 会话提供允许数据访问和操作的接口。

适用于 SQL Server 的 OLE DB 驱动程序使与 SQL Server 的指定实例的首次连接成为成功的数据源初始化的一部分。 只要保持对任何数据源初始化接口的引用,或者没有调用 IDBInitialize::Uninitialize 方法,这一连接就会一直保持。

本节内容

另请参阅

适用于 SQL Server 的 OLE DB 驱动程序编程