MoveFirst, MoveLast, MoveNext, MovePrevious Methods

See Also      Applies To

Move to the first, last, next, or previous record in a specified Recordset object and make that record the current record.

Syntax

VOIDMoveFirst(VOID);

VOIDMoveLast(LONG lOptions = -1);

VOIDMoveNext(VOID);

VOIDMovePrevious(VOID);

Parameters

Type Argument Description
LONG lOptions = -1 Optional. If set to the dbRunAsync constant, the method call is asynchronous. You can use the Cancel method to terminate execution of the asynchronous MoveLast method call. You can use the StillExecuting property to determine when the Recordset is fully populated.

Remarks

Use the Move methods to move from record to record without applying a condition.

Caution If you edit the current record, be sure you use the Update method to save the changes before you move to another record. If you move to another record without updating, your changes are lost without warning.

When you open a CdbRecordset, the first record is current and the BOF property is False. If the Recordset contains no records, the BOF property is True, and there is no current record.

If the first or last record is already current when you use MoveFirst or MoveLast, the current record doesn't change.

If you use MovePrevious when the first record is current, the BOF property is True and there is no current record. If you use MovePrevious again, an error occurs and BOF remains True.

If you use MoveNext when the last record is current, the EOF property is True and there is no current record. If you use MoveNext again, an error occurs and EOF remains True.

If recordset refers to a table-type CdbRecordset (Microsoft Jet workspaces only), movement follows the current index. You can set the current index by using the Index property. If you don't set the current index, the order of returned records is undefined.

Important You can use the MoveLast method to fully populate a dynaset- or snapshot-type Recordset to provide the current number of records in the CdbRecordset. However, if you use MoveLast in this way, you can slow down your application's performance. You should only use MoveLast to get a record count if it is absolutely necessary to obtain an accurate record count on a newly opened CdbRecordset. If you use the dbRunAsync constant with MoveLast, the method call is asynchronous. You can use the StillExecuting property to determine when the CdbRecordset is fully populated, and you can use the Cancel method to terminate execution of the asynchronous MoveLast method call.

You can't use the MoveFirst, MoveLast, and MovePrevious methods on a forward-only–type CdbRecordset object.

To move the position of the current record in a CdbRecordset object a specific number of records forward or backward, use the Move method.

Usage

#include <afxole.h>
#include <dbdao.h>

CdbDatabase      dbs;
CdbRecordset      rst;
...                        // Initiliaze dbs, etc.
rst = dbs.OpenDatabase(strSQL);
while (!rst.GetEOF())                
{
   ...                  // Do some processing.
   rst.MoveNext();      // Get the next record.
}