공급자의 속성 참조
원하는 속성의 속성 그룹 및 속성 ID를 찾습니다. 자세한 내용은 OLE DB 프로그래머 참조의 OLE DB 속성을 참조하세요.
다음 예제에서는 행 집합에서 속성을 얻으려고 한다고 가정합니다. 세션 또는 명령을 사용하는 코드는 비슷하지만 다른 인터페이스를 사용합니다.
속성 그룹을 생성자에 대한 매개 변수로 사용하여 CDBPropSet 개체를 만듭니다. 예시:
CDBPropSet propset(DBPROPSET_ROWSET);
AddProperty를 호출하여 속성 ID와 속성에 할당할 값을 전달합니다. 값의 형식은 사용 중인 속성에 따라 달라집니다.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_IRowsetChange, true);
propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_INSERT | DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE);
인터페이스를 사용하여 .를 IRowset
호출 GetProperties
합니다. 속성 집합을 매개 변수로 전달합니다. 최종 코드는 다음과 같습니다.
CAgentRowset<CCustomCommand>* pRowset = (CAgentRowset<CCustomCommand>*) 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
}
}