template <class T>
bool OpenWithCmnd(IOpenRowset *pIOpenRowset, LPOLESTR strSelect, T& Object, int nCursor=Static, bool bReadOnly=false, bool bBatch=false, bool bScrollback=false, bool bBookmark=false, const DBPROPSET* pOPropSetEx=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, CFRowset, CODataset and COView based objects.

        [in] strSelect:

                A unicode string indicating a statement which could be a SQL select/stored procedure statement, a MDX statement or a URL.

        [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] pOPropSetEx:

                A pointer to an extra set of rowset properties.

Remark

        Opens a rowset, index, row, dataset or view object from a session with a command. If the input cursor 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.