Using C++ Seattle 10, Subscription Upgrade 1 running on Win 7 professional 32 bit and using an MS Access 97 database (as specified by the customer because of all their legacy Access code that they also use on the same database) with FireDAC interface in a VCL Win 32 application. I have a working system. Once a year I need to move a whole set of records that are over five years old to a newly created "backup" database. I do this by building up a list of all the records (identified by their key fields) that need to be moved and then going through each record in a loop loading the data from the source database into a C++ class that models the data and then using a TFDQuery with SQL INSERT statement to create a new record in the destination database and then updating the new record with data from my C++ class. Not the most efficient way to do it but easy to code and easy to understand. It runs overnight and so speed is no issue. Typically there almost 4 million records that are moved and it takes about 1 hour 10 mins to run. I have a repeatable test with on the desktop.
THE PROBLEM: Sometimes it runs correctly. Most often it runs and just one INSERT record FDQuery->Execute() fails to insert the data into the new database. Just occasionally I get two or more failures. For each test run it seems to be a different record(s) that fails.
Because the new destination database is specifically created just for the test I can be sure that there is no other user making a connection to the destination database.
It's as if there is something timing out or the Windows MS Jet engine is failing to allow an update just very rarely.
Has anyone else seen this issue and / or has some ideas about what I should check for my FireDAC query options to ensure that all four million records are inserted correctly every time?
Regards, Roger