Oggetti origine dati (OLE DB)
SQL Server Native Client usa il termine origine dati per il set di interfacce OLE DB usate per stabilire un collegamento a un archivio dati, ad esempio SQL Server. La creazione di un'istanza dell'oggetto origine dati del provider è la prima attività di un consumer SQL Server Native Client.
Ogni provider OLE DB dichiara un identificatore di classe (CLSID) per se stesso. Il CLSID per il provider OLE DB SQL Server Native Client è il GUID C/C++ CLSID_SQLNCLI10 (il simbolo SQLNCLI_CLSID verrà risolto nel progid corretto nel file sqlncli.h a cui si fa riferimento). Con il CLSID, il consumer usa la funzione OLE CoCreateInstance per produrre un'istanza dell'oggetto origine dati.
SQL Server Native Client è un server in-process. Le istanze di SQL Server Native Client oggetti provider OLE DB vengono create utilizzando la macro CLSCTX_INPROC_SERVER per indicare il contesto eseguibile.
L'oggetto origine dati del provider OLE DB 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 effettuata tramite il provider OLE DB 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 SQL Server Native Client e ottenere un riferimento all'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.
}
Con la corretta creazione di un'istanza di un oggetto origine dati del provider OLE DB SQL Server Native Client, l'applicazione consumer può continuare 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 SQL Server Native Client effettua 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.