MDAC 2.5 SDK - OLE DB Providers
Cursor Service for OLE DB
When static client cursors are created from multiple base tables (for instance, in a join operation), data manipulation performed by the Cursor Service can keep the cursor consistent with each base table that participated in generating the data. Explicit update control is available to ensure that updates applied to the base tables in the data store preserve referential integrity restrictions.
ADO dynamic properties exist to give explicit control to Row Fix-up functionality. When the Unique Table ADO property is set, Row Fix-up mode is implemented. The Unique Table property restricts INSERT, UPDATE, and DELETE statements affecting the Unique Table. Columns of the base tables are updatable, but those columns not in the Unique Table cannot be included in any update method.
The following table details how the Row Fix-up functionality behaves using different ADO methods. For the described behavior to occur, the Unique Table property must be set.
ADO method | Maps to OLE DB interface | Row Fix-up behavior |
AddNew | IRowsetChange::InsertRow | For an inserted row, inserts new values in the fields for which the base table is the Unique Table. |
Delete | IRowsetChange::DeleteRows | For a deleted row in the cursor, the corresponding row in the Unique Table will be deleted. All other base tables will be unaffected. |
Update | IRowsetChange::SetData | If UpdateBatch is set to resynchronize rows in the updated batch and if the CustomResynch property is set, UpdateBatch will use this property for custom resynchronization. |
For more information about ADO properties allowing Row Fix-up functionality, see "ADO Dynamic Properties" in the ADO Programmer's Reference.