Database commits being reversed
-
We have a VB6 application that uses an Access DB. One of our customers has reported that edits to the database are not there when they go back into the record. The structure is something like: The function is to add reciepts to a customers booking. Edit record (create reciept record) Commit changes (ado commit to reciept recordset) Call routine to update log in another database (log of changes to booking including receipts) Print Crystal report with reciept details. Close reciept form refresh booking form with new balance. Everything looks OK and the reciept prints off fine (data must be in tables correctly for Crystal report to pick it up). the problem is over the past week on 4 occasions the end of day reports which list cash taken are less than the actual cash taken (reciepts are missing from the DB). I have looked at one example and although i have the printed reciept there is no evidence of it in either the main DB or the log DB. The commit has been completly reversed out. Any ideas? Jon
-
We have a VB6 application that uses an Access DB. One of our customers has reported that edits to the database are not there when they go back into the record. The structure is something like: The function is to add reciepts to a customers booking. Edit record (create reciept record) Commit changes (ado commit to reciept recordset) Call routine to update log in another database (log of changes to booking including receipts) Print Crystal report with reciept details. Close reciept form refresh booking form with new balance. Everything looks OK and the reciept prints off fine (data must be in tables correctly for Crystal report to pick it up). the problem is over the past week on 4 occasions the end of day reports which list cash taken are less than the actual cash taken (reciepts are missing from the DB). I have looked at one example and although i have the printed reciept there is no evidence of it in either the main DB or the log DB. The commit has been completly reversed out. Any ideas? Jon
The Jet database engine is not capable of recovering from bad writes. If data is missing, it's usually that some kind of hardware problem has occurred: power failure, disk errors, memory errors, etc. I would check the file server holding the MDB file very thoroughly. As I said, Jet is not capable of recovering from these errors. In the long term I would suggest moving to MSDE (SQL Server 2000 Desktop Engine) or, when released, SQL Server 2005 Express Edition which both have these capabilities. Stability. What an interesting concept. -- Chris Maunder
-
The Jet database engine is not capable of recovering from bad writes. If data is missing, it's usually that some kind of hardware problem has occurred: power failure, disk errors, memory errors, etc. I would check the file server holding the MDB file very thoroughly. As I said, Jet is not capable of recovering from these errors. In the long term I would suggest moving to MSDE (SQL Server 2000 Desktop Engine) or, when released, SQL Server 2005 Express Edition which both have these capabilities. Stability. What an interesting concept. -- Chris Maunder
It is not just that the data is missing it is that it has been removed. It was in the tables (even if it was only for about 10 seconds) but must have dissapeared quite soon after that. Would the hardware problems cause that? Yes,MSDE or SQL server would be better (especially given that some ofour new customers are quite large organisations) and i keep pushing that we look at migrating the code, but in this case it would be a big job. The app uses a mix of DAO and ADO and a lot of dynamic SQL, the boss just keeps saying 'maybe we'll look at it in the future', ie never. Jon