MDAC 2.5 SDK - OLE DB Programmer's Reference
Chapter 9: Row and Stream Objects
Provider and Consumer Support for Row Objects
If a provider supports row objects, it sets the DBPROPVAL_OO_ROWOBJECT flag of the data source property DBPROP_OLEOBJECTS. When this bit is set, the following conditions apply:
- The IGetRow interface is supported on the rowset.
- If the provider also supports command objects, it must support the return of row objects on ICommand::Execute. If no rows satisfy the selection criteria of the query, the provider should return DB_E_NOTFOUND.
- The provider must support the return of row objects on IOpenRowset::OpenRowset.
- The row object supports the mandatory interfaces IRow, IGetSession, IColumnsInfo, and IConvertType.
- If the provider supports direct binding, the consumer can call IBindResource::Bind or ICreateRow::CreateRow, if supported, to bind to a row object.
- If a provider supports scoped operations on its row objects, it sets the DBPROPVAL_OO_SCOPED bit in the value of the data source property DBPROP_OLEOBJECTS. If this bit is set, the IScopedOperations interface is supported on row objects.
- The provider can choose to support the return of row objects on methods in other interfaces that traditionally return rowsets, such as IColumnsRowset, IViewRowset, and IDBSchemaRowset.