Sdílet prostřednictvím


Odkazování vlastnosti ve Vašem zprostředkovateli

Vyhledejte skupinu vlastností a vlastnost ID pro vlastnost, kterou chcete. Pro další informace naleznete v Vlastnosti technologie OLE DB v Referenci programátora technologie OLE DB.

Následující příklad předpokládá, že se pokoušíte získat vlastnost ze sady řádků. Kód pro použití relace nebo příkazu je podobný, ale používá jiné rozhraní.

Vytvořte objekt CDBPropSet pomocí skupiny vlastností jako parametr do konstruktoru. Příklad:

CDBPropSet propset(DBPROPSET_ROWSET);

Zavolejte AddProperty, předáním ji ID vlastnosti a hodnotu, která má být vlastnosti přidělena. Typ hodnoty závisí na vlastnosti, kterou používáte.

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

Použíjte rozhraní IRowset voláním GetProperties. Předejte sadu vlastností jako parametr. Zde je výsledný kod:

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

CComQIPtr<IRowsetInfo, &IID_IRowsetInfo> spRowsetProps = pRowset;

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

if (spRowsetProps)
   hr = spRowsetProps->GetProperties(1, &set, &ulPropSet, &pPropSet);

if (pPropSet)
{
   CComVariant var = pPropSet->rgProperties[0].vValue;
   CoTaskMemFree(pPropSet->rgProperties);
   CoTaskMemFree(pPropSet);

   if (SUCCEEDED(hr) && (var.boolVal == VARIANT_TRUE))
   {
      ...  // Use property here
   }
}

Viz také

Koncepty

Práce s šablonami zprostředkovatele OLE DB