Объекты источника данных собственного клиента SQL Server (OLE DB)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Внимание
Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .
Sql Server Native Client использует термин источника данных для набора интерфейсов OLE DB, используемых для установления связи с хранилищем данных, например SQL Server. Создание экземпляра объекта источника данных поставщика является первой задачей потребителя собственного клиента SQL Server.
Каждый поставщик OLE DB объявляет свой идентификатор класса (CLSID). CLSID для поставщика OLE DB для собственного клиента SQL Server — это GUID C/C++ CLSID_SQLNCLI10 (символ SQLNCLI_CLSID будет разрешать правильный прогид в файле sqlncli.h, на который вы ссылаетесь). Используя CLSID, потребитель может вызвать функцию OLE CoCreateInstance для создания экземпляра объекта источника данных.
Sql Server Native Client — это сервер внутрипроцессного сервера. Экземпляры объектов поставщика 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.