IRowPosition::GetRowPosition

Returns the hRow of the current row position.

HRESULT GetRowPosition (
HCHAPTER *              phChapter,
HROW *                  phRow
DBPOSITIONFLAGS *       pdwPositionFlags);

Parameters

phChapter

[out]
A pointer to memory in which to return the chapter associated with the current row. If the rowset is not chaptered, phChapter is set to DB_NULL_HCHAPTER. If phChapter is a null pointer on input, no chapter value is returned.

phRow

[out]
A pointer to memory in which to return the hRow of the current row position, or DB_NULL_HROW if there is no current row position.

pdwPositionFlags

[out]
A pointer to memory in which to return additional information about the row position. If pdwPositionFlags is a null pointer on input, no additional information is returned for the row position. pdwPositionFlags may indicate one of the following conditions:

Value Meaning
DBPOSITION_OK hRow specifies the current row position.
DBPOSITION_NOROW hRow is DB_NULL_HROW, and the current row position is undefined.
DBPOSITION_BOF hRow is DB_NULL_HROW, and the row position is before the beginning of the rowset.
DBPOSITION_EOF hRow is DB_NULL_HROW, and the row position is off the end of the rowset.

Additional values for this flag may be defined in the future.  If an unknown value is returned in pdwPosition Flags, the consumer should assume that there is no row if phRow is set to DB_NULL_HROW, and that phRow points to a valid row if it is any other value.

Return Code

S_OK
The method succeeded.

E_FAIL
A provider-specific error occurred.

E_INVALIDARG
phRow was a null pointer.

E_UNEXPECTED
IRowPosition::Initialize has not been called; the row position object is in an uninitialized state.

ITransaction::Commit or ITransaction::Abort was called and the object is in a zombie state.

There is no current rowset.

Comments

Before returning, the row position object calls AddRefRows to increment the hRow’s reference count and, if the chapter is non-null, AddRefChapter to increment the phChapter’s reference count.

Calling GetRowPosition prior to the first SetRowPosition returns a value of DB_NULL_HROW for phRow, and a pdwPositionFlags value of DBPOSITION_NOROW.