OLE DB 'IColumnsInfo2' problem
-
Hello. I'm writting application which Open an Access database via OLE DB. And I want to receave all column metadata With 'IColumnsInfo2::GetRestrictedColumnInfo(...)' , but I cannot(or don't know how) implement IColumnsInfo2 with 'IColumnsRowset'. i.e. -------------------------------- IColumnsRowset** ppOLEColumnsInfo; IColumnsInfo2** ppOLEColumnsInfo2; ............. HRESULT hr = ppOLEColumnsInfo->QueryInterface(IID_IColumnsInfo2,(void**)ppOLEColumnsInfo2) //and hr == E_NOINTERFACE -------------------------------- ............ If i try to add 'DBPROP_IColumnsInfo2' property while open 'IColumnRrcorset' with 'IOpenRowset::OpenRowset', result is 'DB_S_ERRORSOCCURRED'. i.e. -------------------------------- IOpenRowset** ppOLEOpenRowset; IColumnsRowset** ppOLEColumnsInfo; .......... DBPROPSET dbPropSet[1]; ULONG cDbPropCount = sizeof(dbPropSet)/sizeof DBPROPSET; const ULONG cProperties = 1; DBPROP rgProperties[cProperties]; pPropSet->rgProperties = rgProperties; pPropSet->cProperties = cProperties; pPropSet->guidPropertySet = DBPROPSET_ROWSET; AddProperty(&rgProperties[1] ,DBPROP_IColumnsInfo2,VT_BOOL,VARIANT_TRUE,DBPROPOPTIONS_OPTIONAL);//doesn't work with DBPROPOPTIONS_REQUIRED, too ............ hr = pOLEOpenRowset->OpenRowset(NULL,&dbID,NULL,IID_IColumnsRowset, 1 ,&dbPropSet,(IUnknown **)&pOLEColumnsRowset ); //and hr == DB_S_ERRORSOCCURRED //and dbPropSet.rgProperties.dwStatus == DBPROPSTATUS_NOTSUPPORTED -------------------------------- So, how can i implement Rowset which can implement IDBColumnInfo2 ? thanks at advice: KalliMan a