Oggetti origine dati di SQL Server Native Client (OLE DB)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)
Importante
SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Il provider OLE DB di SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider OLE DB legacy Microsoft per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. In futuro, passare al nuovo driver Microsoft OLE DB (MSOLEDBSQL) per SQL Server.
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 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 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 degli oggetti provider OLE DB di SQL Server Native Client vengono create usando 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 effettuata 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 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 di 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 di 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.