Поделиться через


Объекты источников данных (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.

См. также

Основные понятия