Question: What differs the TpFIBDataSet.ApplyUpdToBase method from TpFIBDataSet.ApplyUpdates?
Answer: Both methods write changes made in the dataset to the database (if the CachedUpates dataset property is set to True). These methods show different behaviour when working with the local dataset cache.
Sending record changes to the database ApplyUpdates marks the records as processed. When changes of first N records have been successfully applied and N+1 changes were not applied, the transaction cannot be rolled back (as first N records are marked as processed, recurrent ApplyUpdates calls won’t be applied to their changes).
Unlike ApplyUpdates, ApplyUpdToBase does not do any operations with the local cache. This method only sends changes to the server. If you need to mark records as processed, you can use an additional CommitUpdToCache method.
So a successful execution of ApplyUpdates is similar to the consequence of two methods:ApplyUpdToBase;
If no errors occur after this code is executed, the changes will be successfully applied to the database, committed by Commit and the local dataset cache will be marked as applied. In case any errors occur after the execution of ApplyUpdToBase, all the applied changes will be rolled back (UpdateTransaction.RollBack), and the dataset will be prepared for a new execution.
with TpFIBDataSet1 do try ApplyUpdToBase; UpdateTransaction.Commit; CommitUpdToCach; except UpdateTransaction.RollBack; raise end;
During a re-write of a very large software system we were having some difficulties utilizing a 3rd party grid that we had chosen. The dataset connectivity was very flaky due to the complex joins and updates we were using which caused the grids to behave very sketchy. FIBPlus was the perfect solution for us. After implementing it everything became so much easier. The grid functionality stabilized, data retrieval was much faster, and we were pleasantly surprised by many of the unique features of your components. We were especially impressed with your pFIBUpdateObject components which allowed us to very easily update the multiple tables we were using in our joins. Many thanks for your great components.>>