Referenciar uma propriedade no seu provedor.
Para localizar o grupo de propriedade e a identificação de propriedade para a propriedade desejada. Para obter mais informações, consulte Propriedades de OLE DB na OLE DB Programmer referência.
O exemplo a seguir pressupõe que você está tentando obter uma propriedade do conjunto de linhas. O código para usar o comando ou uma sessão é semelhante, mas usa uma interface diferente.
Criar um CDBPropSet usando o grupo de propriedades como o parâmetro para o construtor de objeto. For example:
CDBPropSet propset(DBPROPSET_ROWSET);
Chame AddProperty, passando a identificação de propriedade e um valor a ser atribuído à propriedade. O tipo do valor depende da propriedade que você está usando.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IRowsetChange, true);
propset.AddProperty(DBPROP_UPDATABILITY,
DBPROPVAL_UP_INSERT | DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE);
Use o IRowset interface para chamar GetProperties. Passe a propriedade definida como um parâmetro. Aqui está o código final:
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
}
}