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.