Objetos de origen de datos de SQL Server Native Client (OLE DB)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
Importante
SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.
SQL Server Native Client usa el término origen de datos para el conjunto de interfaces OLE DB que se usan para establecer un vínculo a un almacén de datos, como SQL Server. La creación de una instancia del objeto de origen de datos del proveedor es la primera tarea de un consumidor de SQL Server Native Client.
Todos los proveedores OLE DB declaran un identificador de clase (CLSID) para sí mismo. El CLSID del proveedor OLE DB de SQL Server Native Client es el GUID de C/C++ CLSID_SQLNCLI10 (el símbolo SQLNCLI_CLSID se resolverá en el archivo sqlncli.h correcto al que hace referencia). Con el CLSID, el consumidor usa la función de OLE CoCreateInstance para fabricar una instancia del objeto de origen de datos.
SQL Server Native Client es un servidor en proceso. Las instancias de objetos de proveedor OLE DB de SQL Server Native Client se crean mediante la macro CLSCTX_INPROC_SERVER para indicar el contexto ejecutable.
El objeto de origen de datos del proveedor OLE DB de SQL Server Native Client expone las interfaces de inicialización de OLE DB que permiten al consumidor conectarse a bases de datos de SQL Server existentes.
Cada conexión realizada a través del proveedor OLE DB de SQL Server Native Client establece estas opciones automáticamente:
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
En este ejemplo se usa la macro de identificador de clase para crear un objeto de origen de datos del proveedor OLE DB de SQL Server Native Client y obtener una referencia a su interfaz 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 creación correcta de una instancia de un objeto de origen de datos del proveedor OLE DB de SQL Server Native Client, la aplicación consumidor puede continuar inicializando el origen de datos y creando sesiones. Las sesiones OLE DB presentan las interfaces que permiten manipulación y acceso a datos.
El proveedor OLE DB de SQL Server Native Client realiza su primera conexión a una instancia especificada de SQL Server como parte de una inicialización correcta del origen de datos. Se mantiene la conexión siempre que se mantenga una referencia en cualquier interfaz de inicialización de origen de datos, o hasta que se llame al método IDBInitialize::Uninitialize.