Jak odwołać właściwości w moim dostawcy?

Znajdź właściwości grupy i identyfikator właściwości dla właściwości, którą chcesz. (Zobacz właściwości OLE DB OLE DB Programmer's Reference.)

W poniższym przykładzie założono, że użytkownik próbuje uzyskać właściwości z zestawu wierszy. Kod przy użyciu sesji lub polecenia są podobne, ale używa innego interfejsu.

Utwórz obiekt CDBPropset , używając grupy właściwości jako parametr do konstruktora. Na przykład:

CDBPropSet propset(DBPROPSET_ROWSET)

Wywołanie funkcji AddProperty, przekazując jej identyfikator właściwości i wartości ma być przypisany do właściwości. Typ wartości zależy od właściwości, którego używasz.

CDBPropSet propset(DBPROPSET_ROWSET);
zestaw właściwości.AddProperty(DBPROP_IRowsetChange, true);
zestaw właściwości.AddProperty (DBPROP_UPDATABILITY,
DBPROPVAL_UP_INSERT | DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE)

Członek danych za pomocą m_spUnkSite Aby uzyskać wskaźnik do obiektu, który utworzył obiekt.

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

CComQIPtr < IRowsetInfo & IID_IRowsetInfo > spRowsetProps = pRowset

Za pomocą interfejsu IRowset wywołania GetProperties. Przekazywanie właściwości ustaw jako parametr. Oto kod wersja ostateczna:

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

CComQIPtr < IRowsetInfo & IID_IRowsetInfo > spRowsetProps = pRowset;

zestaw.AddPropertyID(DBPROP_BOOKMARKS);
DBPROPSET * pPropSet = NULL;
ULONG ulPropSet = 0;
HRESULT hr;

Jeżeli (spRowsetProps)
   hr = spRowsetProps - > GetProperties (1 & zestaw & ulPropSet i pPropSet);

Jeżeli (pPropSet)
{
   CComVariant var = pPropSet - > rgProperties [0] .vvalue;
   CoTaskMemFree (pPropSet - > rgProperties);
   CoTaskMemFree(pPropSet);

Jeżeli (SUCCEEDED(hr) & & (var.boolVal == VARIANT_TRUE))
   {
      …
   }
}

Index