Compartilhar via


Objetos de fonte de dados do SQL Server Native Client (OLE DB)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) no futuro.

O SQL Server Native Client usa o termo fonte de dados para o conjunto de interfaces OLE DB usadas para estabelecer um link para um armazenamento de dados, como o SQL Server. Criar uma instância do objeto de fonte de dados do provedor é a primeira tarefa de um consumidor do SQL Server Native Client.

Todo provedor do OLE DB declara um identificador de classe (CLSID) para si mesmo. O CLSID para o provedor OLE DB do SQL Server Native Client é o CLSID_SQLNCLI10 GUID C/C++ (o símbolo SQLNCLI_CLSID será resolvido para o progid correto no arquivo sqlncli.h que você referenciar). Com o CLSID, o consumidor usa a função CoCreateInstance do OLE para produzir uma instância do objeto de fonte de dados.

O SQL Server Native Client é um servidor em processo. Instâncias de objetos de provedor OLE DB do SQL Server Native Client são criadas usando a macro CLSCTX_INPROC_SERVER para indicar o contexto executável.

O objeto de fonte de dados do provedor OLE DB do SQL Server Native Client expõe as interfaces de inicialização do OLE DB que permitem que o consumidor se conecte a bancos de dados existentes do SQL Server.

Cada conexão feita por meio do provedor OLE DB do SQL Server Native Client define estas opções automaticamente:

  • 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

Este exemplo usa a macro do identificador de classe para criar um objeto de fonte de dados do provedor OLE DB do SQL Server Native Client e obter uma referência à sua interface 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.  
}  

Com a criação bem-sucedida de uma instância de um objeto de fonte de dados do provedor OLE DB do SQL Server Native Client, o aplicativo consumidor pode continuar inicializando a fonte de dados e criando sessões. As sessões de OLE DB apresentam as interfaces que permitem acesso e manipulação de dados.

O provedor OLE DB do SQL Server Native Client faz sua primeira conexão com uma instância especificada do SQL Server como parte de uma inicialização bem-sucedida da fonte de dados. A conexão é mantida, desde que uma referência seja mantida em qualquer interface de inicialização de fonte de dados, ou até que o método IDBInitialize::Uninitialize seja chamado.

Nesta seção

Confira também

SQL Server Native Client (OLE DB)