template <class T>
bool OpenObject(IOpenRowset *pIOpenRowset, T& Object, LPOLESTR strTblName, LPOLESTR strIdxName=NULL, DBPROPSET* pDBPropSet=NULL);

template <class T>
bool OpenObject(IOpenRowset *pIOpenRowset, LPOLESTR strTblName, T& Object, LPOLESTR strIdxName=NULL, int nCursor=Static, bool bReadOnly=false, bool bBatch=false, bool bScrollback=false, bool bBookmark=false, const DBPROPSET* pPropSetEx=NULL);

Return Value

        true if successful; otherwise false.

Parameters

        [in] pIOpenRowset:

                A pointer to an interface IOpenRowset wired with a session.

        [in] Object:

                A reference to an object, which could be one of CRBase, CRow and COView objects.

        [in] strTblName:

                A unicode string indicating a table name.

        [in] strIdxName:

                A unicode string indicating the index name of the table identified by strTblName.

        [in] pDBPropSet:

                A pointer to a set of rowset properties.

        [in] nCursor:

                One of supported cursor types defined in the enum CursorType.

        [in] bReadOnly:

                Indicating if a rowset will be updateable.

        [in] bBatch:

                Indicating if a rowset will be updateable with the batch mode.

        [in] bScrollBack:

                Indicating if a rowset will be opened with DBPROP_CANSCROLLBACKWARDS property set to true.

        [in] bBookmark:

                Indicating if a rowset will be opened with DBPROP_IRowsetLocate property set to true.

        [in] pPropSetEx:

                A pointer to an extra set of rowset properties.

Remark

        Opens a rowset, view, index or row object from a session without the involvement of a command. If the input cursor of the second function is ForwardOnly, you will open a read-only and forward-only rowset with no support of bookmark. For the sake of performance, you need to check the documentation of a used OLEDB provider and set these parameters correctly.