Aracılığıyla paylaş


Bir veri bağlantısı kuruluyor kaynak

Erişim için SQL Server Yerel istemci OLE DB sağlayıcı, tüketici oluşturmalısınız veri örneği kaynak nesne arayarak Cocreateınstance yöntem.Benzersiz bir sınıf tanımlayıcısı (CLSID), her OLE DB sağlayıcı tanımlar.Için SQL Server Sınıf tanımlayıcısı yerel istemci OLE DB sağlayıcı CLSID_SQLNCLI10 ' dir. Simge için çözümler SQLNCLI_CLSID de kullanılabilir SQL Server Başvurduğunuz sqlncli.h içinde kullanılan yerel istemci OLE DB sağlayıcı.

Verileri kaynak sunar nesne IDBProperties arabirim tüketici, sunucunun adını, veritabanı adı, kullanıcı KIMLIĞI ve parola gibi temel kimlik bilgileri sağlamak için kullanır.The IDBProperties::SetProperties yöntem is called to küme these properties.

Birden çok kopyası varsa SQL Server bilgisayarda çalışan, sunucu adı ServerName\InstanceName belirtildi.

Verileri kaynak nesne de açýklar IDBInitialize arabirim.Özellikleri sonra küme, çaðýrarak veri kaynağına bağlanmak için kuruldu IDBInitialize::Initialize yöntem.Örneğin:

CoCreateInstance(CLSID_SQLNCLI10, 
                 NULL, 
                 CLSCTX_INPROC_SERVER,
                 IID_IDBInitialize, 
                 (void **) &pIDBInitialize)

Bu çağrı Cocreateınstance CLSID_SQLNCLI10 ile ilişkili sınıfının tek bir nesne oluşturur (nesneyi oluşturmak için kullanılan kod ve veri ile CSLID ilişkilidir).IID_IDBInitialize arabirim (tanıtıcısı başvurusuIDBInitialize) Nesne ile iletişim kurmak için kullanılacak.

Başlatır ve bir veri kaynağına bağlantı kuran bir örnek işlev aşağıda verilmektedir.Acessing OLE DB örnek uygulamalar hakkında daha fazla bilgi için bkz: SQL Server Örnekleri ve Örnek Veritabanlarının Yüklenmesiyle İlgili Önemli Noktalar.

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();
}