数据源对象 (OLE DB)
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 访问接口数据源对象公开 OLE DB 初始化接口,使用者可使用这些接口连接到现有 SQL Server 数据库。
通过 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 方法前,这一连接会一直保持。