CAUSE
In MDAC 2.1, the row pointer is set to the current location after the update. Therefore, a
MoveNext call moves the row pointer to the next row in the recordset that meets the filter criteria. For example, before the update, the row pointer position appears as follows:
ID Filter
=== ========
1 true <--
2 true
3 true
After the update and
MoveNext, the row pointer position appears as follows:
ID Filter
=== ========
1 false
2 true <--
3 true
In MDAC 2.5 and 2.6, the row pointer is set to the next row that meets the filter criteria. Thus, a
MoveNext call moves the row pointer to the second row that meets the filter criteria and breaks applications that are built according to the behavior in MDAC 2.1. For example, before the update, the row pointer position appears as follows:
ID Filter
=== ========
1 true <--
2 true
3 true
After the update and
MoveNext, the row pointer position appears as follows:
ID Filter
=== ========
1 false
2 true
3 true <--