I've used a book by Andreas Kosch, which is in german ('
ADO und Delphi'). It explaines very well how to use the ltBatchOptimistic Mode. Of course it works.
However, our preferred method is to completely ignore these features and build our own
SQL statements in order to batch update or whatever. One big mistake in
ADO is that it is not able to produce 100% correct updates which only take a key field as a filter condition:
Suppose you have a table 'Foo' with 2 fields 'fID' (your primary key) and 'fBar' (a string or whatever).
If you execute a post against that
ADO-table,
ADO will generate something like this:
Update Foo set fBar='NewValue' where fID = 1 and fBar='OldValue'
The last 'and fBar...' is completely stupid and might even cause the whole statement to crash. We just never found a proper way to do accurate and fast updates that always worked under all conditions. To get even worse, we use 'updatable views' in our
SQL-server, which is a very cool feature, but not fully supported by
ADO.
Now, we simply generate a script containing all the updates, inserts, linking etc. and execute this using MyAdoConnection.Execute within a transaction. Nothing is faster than that. This gives us the ultimate control on how and what to change, update and delete.
BDE is a pain in the a***, but it's TUpdateSQL component was really something.