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