Oggetti origine dati (OLE DB)
SQL Server Native Client utilizza il termine origine dati per il set di interfacce OLE DB utilizzate per stabilire un collegamento a un archivio dati, ad esempio SQL Server. La creazione di un'istanza dell'oggetto origine dati del provider rappresenta la prima attività di un consumer di SQL Server Native Client.
Ogni provider OLE DB dichiara un identificatore di classe (CLSID) per se stesso. Il CLSID per il provider OLE DB di SQL Server Native Client è il GUID C/C++ CLSID_SQLNCLI10. Il simbolo SQLNCLI_CLSID risolverà il ProgID corretto nel file sqlncli.h a cui si fa riferimento. Con il CLSID il consumer utilizza la funzione OLE CoCreateInstance per produrre un'istanza dell'oggetto origine dati.
SQL Server Native Client è un server in-process. Le istanze del provider OLE DB di SQL Server Native Client vengono create utilizzando la macro CLSCTX_INPROC_SERVER per indicare il contesto eseguibile.
L'oggetto origine dati del provider OLE DB di SQL Server Native Client espone le interfacce di inizializzazione OLE DB che consentono al consumer di connettersi ai database di SQL Server esistenti.
Ogni connessione eseguita tramite il provider OLE DB di SQL Server Native Client imposta automaticamente queste opzioni:
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
In questo esempio viene utilizzata la macro dell'identificatore di classe per creare un oggetto origine dati del provider OLE DB di SQL Server Native Client e ottenere un riferimento alla relativa interfaccia 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.
}
In seguito alla creazione di un'istanza di un oggetto origine dati del provider OLE DB di SQL Server Native Client, l'applicazione consumer può proseguire inizializzando l'origine dati e creando sessioni. Le sessioni OLE DB presentano le interfacce che consentono l'accesso ai dati e la relativa modifica.
Il provider OLE DB di SQL Server Native Client crea la prima connessione a un'istanza specificata di SQL Server come parte di un'inizializzazione corretta dell'origine dati. La connessione viene mantenuta a condizione che venga mantenuto un riferimento in una delle interfacce di inizializzazione dell'origine dati o fino a quando non viene chiamato il metodo IDBInitialize::Uninitialize.