This is the nature of optimistic updating—for performance and scalability reasons, no server locks or resources are held that would enable the CCE to prevent or detect other users' concurrent changes.
As a result, most of the difficulty in this type of multi-tier updating occurs because the component (the CCE) that answers to the user cannot guarantee that any update operations the user has performed locally will be successful by the time they are submitted to the back-end database.
Failures can be caused by reasons as various as connectivity errors, metadata changes, data conflicts, permission violations, and so forth, and resolving these errors gracefully takes a high degree of flexibility and well-designed default behaviors.
The current body of CCE code, considered to be the "updating code" responsible for translating rowset changes into SQL commands, consists of three sections: The update properties provide extra information about the structure of a result set and enable the CCE to perform updates on the constituent tables of that result set.
It is an independently instantiable OLE DB rowset object, implementing all of the required rowset interfaces, many of the most interesting optional interfaces, and several unique interfaces that might make their way into future versions of the OLE DB specification.
An understanding of optimistic remote updating and its implementation in the Client Cursor Engine will help developers gain some useful insights into the actual updating results in any given real-life situation.
Determining if your organization is an intelligent enterprise or a slow learner may be challenging, but a new index quantifies criteria in terms of data usage, workflow efficiency, and progress toward the Io T.Along with the data, the gathered properties are stored internally and used when the command to attempt a back-end update is given.