Delphi dbgrid row cannot be located for updating
This behavior is essential for briefcase applications (discussed later in the chapter) and web applications, where there is no permanent connection to the database and, therefore, no way to implement pessimistic locking.
In contrast with pessimistic locking, optimistic locking has the additional considerable benefit that resources are consumed only momentarily; therefore, the average resource usage is much lower, making the database more scalable. Assume you have an ADOData Set connected to the Customer table of the .
For example, should the insert of a row into the previous join result in a new product and also a new supplier, or just a new product?
The Client Data Set/Provider architecture allows you to specify a primary update table (and advanced features actually not covered in the book) and also customize the updates' SQL, as we partially saw in Chapter 14 and we'll further explore in Chapter 16, "Multitier Data Snap Applications." ADO supports an equivalent to cached updates called batch updates, which are similar to the BDE approach.
In ADO 2.6, the error message is "Row cannot be located for updating.
This approach is particularly useful for highlighting records in different colors in a grid or showing their status on a status bar.
One such status is fg Pending Records, which includes all records that have been modified but not yet applied. As such, the attitude is that all users can edit any record at any time, and you deal with the consequences of conflicts between different users' updates to the same records when the changes are saved.
So, to allow the user to look through all the changes they have made so far, you need only execute two lines: Naturally, the result set will now include the records that have been deleted. Thus, conflicts are considered an exception to the rule.
Run the program twice (it is the Batch Updates example if you don't want to rebuild it) and begin editing a record in the first copy of the program.
Although for the sake of simplicity I'll demonstrate a conflict using just a single machine, the scenario and subsequent events are unchanged when using multiple machines: As with many ADO error messages, the exact message you receive will depend not only on the version of ADO you are using but also on how closely you followed the example.This statement provides a list of orders and the customers that placed those orders.