Объекты источников данных (OLE DB)
SQL Server Native Client использует термин источник данных для набора интерфейсов OLE DB, используемых для установления связи с хранилищем данных, например SQL Server. Создание экземпляра объекта источника данных поставщика является первой задачей SQL Server Native Client потребителя.
Каждый поставщик OLE DB объявляет свой идентификатор класса (CLSID). CLSID для поставщика SQL Server Native Client OLE DB — это CLSID_SQLNCLI10 GUID C/C++ (символ, SQLNCLI_CLSID будет разрешаться в правильный progid в файле sqlncli.h, на который вы ссылаетесь). Используя CLSID, потребитель может вызвать функцию OLE CoCreateInstance для создания экземпляра объекта источника данных.
SQL Server Native Client является внутрипроцессным сервером. Экземпляры SQL Server Native Client объектов поставщика OLE DB создаются с помощью макроса CLSCTX_INPROC_SERVER для указания исполняемого контекста.
Объект источника данных поставщика OLE DB SQL Server Native Client предоставляет интерфейсы инициализации 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.