Objetos de fonte de dados (OLE DB)
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. A criação de 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 do provedor do OLE DB do SQL Server Native Client é C/C++ GUID CLSID_SQLNCLI10 (o símbolo SQLNCLI_CLSID será resolvido para a progid correta no arquivo sqlncli.h que você referencia). 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 dos objetos do provedor do 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 do OLE DB do SQL Server Native Client expõe as interfaces de inicialização do OLE DB que permitem ao consumidor se conectar aos bancos de dados do SQL Server existentes.
Toda conexão estabelecida pelo provedor do 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
Esse exemplo usa a macro de identificador de classe para criar um objeto de fonte de dados do provedor do OLE DB do SQL Server Native Client e obter uma referência para 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 do OLE DB do SQL Server Native Client, o aplicativo de 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 do OLE DB do SQL Server Native Client estabelece sua primeira conexão com uma instância especificada do SQL Server como parte de uma inicialização de fonte de dados bem-sucedida. A conexão é mantida, contanto 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