Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para acceder al proveedor OLE DB de SQL Server Native Client, el consumidor primero debe crear una instancia de un objeto de origen de datos llamando al método CoCreateInstance . Un identificador de clase único (CLSID) identifica cada proveedor OLE DB. Para el proveedor OLE DB de SQL Server Native Client, el identificador de clase es CLSID_SQLNCLI10. También puede usar el símbolo SQLNCLI_CLSID que se resolverá en el proveedor OLE DB de SQL Server Native Client que se usa en sqlncli.h al que hace referencia.
El objeto de origen de datos expone la interfaz IDBProperties , que el consumidor usa para proporcionar información básica de autenticación, como el nombre del servidor, el nombre de la base de datos, el identificador de usuario y la contraseña. Se llama al método IDBProperties::SetProperties para establecer estas propiedades.
Si hay varias instancias de SQL Server que se ejecutan en el equipo, el nombre del servidor se especifica como ServerName\InstanceName.
El objeto de origen de datos también expone la interfaz IDBInitialize . Una vez establecidas las propiedades, se establece la conexión al origen de datos llamando al método IDBInitialize::Initialize . Por ejemplo:
CoCreateInstance(CLSID_SQLNCLI10,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDBInitialize,
(void **) &pIDBInitialize)
Esta llamada a CoCreateInstance crea un único objeto de la clase asociada a CLSID_SQLNCLI10 (CSLID asociado a los datos y el código que se usará para crear el objeto). IID_IDBInitialize es una referencia al identificador de la interfaz (IDBInitialize) que se va a usar para comunicarse con el objeto.
A continuación se muestra una función de ejemplo que inicializa y establece una conexión con el origen de datos.
void InitializeAndEstablishConnection() {
// Initialize the COM library.
CoInitialize(NULL);
// Obtain access to the SQL Server Native Client OLE DB provider.
hr = CoCreateInstance(CLSID_SQLNCLI10,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDBInitialize,
(void **) &pIDBInitialize);
// Initialize property values needed to establish connection.
for (i = 0 ; i < 4 ; i++)
VariantInit(&InitProperties[i].vValue);
// Server name.
// See DBPROP structure for more information on InitProperties
InitProperties[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
InitProperties[0].vValue.vt = VT_BSTR;
InitProperties[0].vValue.bstrVal=
SysAllocString(L"Server");
InitProperties[0].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[0].colid = DB_NULLID;
// Database.
InitProperties[1].dwPropertyID = DBPROP_INIT_CATALOG;
InitProperties[1].vValue.vt = VT_BSTR;
InitProperties[1].vValue.bstrVal= SysAllocString(L"database");
InitProperties[1].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[1].colid = DB_NULLID;
// Username (login).
InitProperties[2].dwPropertyID = DBPROP_AUTH_INTEGRATED;
InitProperties[2].vValue.vt = VT_BSTR;
InitProperties[2].vValue.bstrVal= SysAllocString(L"SSPI");
InitProperties[2].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[2].colid = DB_NULLID;
InitProperties[3].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[3].colid = DB_NULLID;
// Construct the DBPROPSET structure(rgInitPropSet). The
// DBPROPSET structure is used to pass an array of DBPROP
// structures (InitProperties) to the SetProperties method.
rgInitPropSet[0].guidPropertySet = DBPROPSET_DBINIT;
rgInitPropSet[0].cProperties = 4;
rgInitPropSet[0].rgProperties = InitProperties;
// Set initialization properties.
hr = pIDBInitialize->QueryInterface(IID_IDBProperties,
(void **)&pIDBProperties);
hr = pIDBProperties->SetProperties(1, rgInitPropSet);
pIDBProperties->Release();
// Now establish the connection to the data source.
pIDBInitialize->Initialize();
}
Véase también
Creación de una aplicación de proveedor OLE DB de SQL Server Native Client