Objetos de fonte de dados (OLE DB)
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 SQL Server. Criar uma instância do objeto de fonte de dados do provedor é a primeira tarefa de um consumidor 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 SQL Server Native Client é o CLSID_SQLNCLI10 guid do C/C++ (o símbolo SQLNCLI_CLSID resolve 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.
SQL Server Native Client é um servidor em processo. Instâncias de SQL Server Native Client objetos de provedor OLE DB 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 SQL Server Native Client expõe as interfaces de inicialização OLE DB que permitem que o consumidor se conecte a bancos de dados SQL Server existentes.
Cada conexão feita por meio do provedor OLE DB SQL Server Native Client define essas 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 SQL Server Native Client e obter uma referência à 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 SQL Server Native Client objeto de fonte de dados do provedor OLE DB, 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 SQL Server Native Client faz sua primeira conexão com uma instância especificada de 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.