объекты источника данных SQL Server Native Client (OLE DB)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Важно!

SQL Server Native Client (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Для новой разработки не рекомендуется использовать SQL Server Native Client поставщик OLE DB (SQLNCLI или SQLNCLI11) и устаревший поставщик OLE DB Майкрософт для SQL Server (SQLOLEDB). Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server в будущем.

SQL Server Native Client используется термин источник данных для набора интерфейсов OLE DB, используемых для установления связи с хранилищем данных, например SQL Server. Создание экземпляра объекта источника данных поставщика является первой задачей потребителя SQL Server Native Client.

Каждый поставщик OLE DB объявляет свой идентификатор класса (CLSID). CLSID для поставщика OLE DB SQL Server Native Client является 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.

в этом разделе

См. также:

Собственный клиент SQL Server (OLE DB)