Ne zaman sağlayıcı özelliği başvuru?

İstediğiniz özellik için özellik grubu ve özellik kimliği bulabilirsiniz. (Bkz: ole db özellikleri ole db Programcı Başvurusu.)

Aşağıdaki örnek, satır özelliği almak için çalışıyoruz varsayar. Oturum veya komutunu kullanarak kodu benzer, ancak farklı bir arabirim kullanır.

Özellik grubu Oluşturucu parametre olarak kullanarak CDBPropset nesnesi oluşturun. Örneğin:

CDBPropSet propset(DBPROPSET_ROWSET)

Özellik kimliği ve değer özelliğine atanan geçen AddProperty, diyoruz. Kullandığınız özelliği değeri türüne bağlıdır.

CDBPropSet propset(DBPROPSET_ROWSET);
propSet.AddProperty(DBPROP_IRowsetChange, true);
propSet.AddProperty (DBPROP_UPDATABILITY,
DBPROPVAL_UP_INSERT | DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE)

Veri üyesi kullanmak m_spUnkSite işaretçiyi nesneniz oluşturulan nesneyi almak için.

 CAgentRowsetlt;CMyProviderCommand > * pRowset = (CAgentRowset <CMyProviderCommand> *) pThis;

CComQIPtr < IRowsetInfo & IID_IRowsetInfo > spRowsetProps = pRowset

IRowset arabirimi GetPropertiesaramak için kullanın. Özelliği bir parametre olarak geçirmek. İşte son kodu:

CAgentRowsetlt;CMyProviderCommand > * pRowset = (CAgentRowset <CMyProviderCommand> *) pThis;

CComQIPtr < IRowsetInfo & IID_IRowsetInfo > spRowsetProps = pRowset;

ayarlayın.AddPropertyID(DBPROP_BOOKMARKS);
dbpropset * pPropSet = null;
ulong ulPropSet = 0;
hresult hr;

Eğer (spRowsetProps)
   hr = spRowsetProps - > GetProperties (1 set, ulPropSet & pPropSet);

Eğer (pPropSet)
{
   CComVariant var pPropSet = > rgProperties [0] .vvalue;
   CoTaskMemFree (pPropSet - > rgProperties);
   CoTaskMemFree(pPropSet);

Eğer (SUCCEEDED(hr) & & (var.boolVal varıant_true ==))
   {
      …
   }
}

Index