Icon View Incident Report

Serious Serious
Reported By: Rolf Frei
Reported On: 5/31/2017
For: Version 2.25 Build 5
# 4528 Altering a Table Results in an Incorrect Table Structure Checksum

I get an checksum mismatch for a table, as soon I do an alter table without to alter anything at all. This will change the checksum and I'm not anymore able to restore that single table from the backup.

I have attached a small backup with empty tables to this email. So use this steps to reproduce it:

1. Create a new empty database.
2. Restore the attached Backup inluding the schema to this database.
3. Now again restore the backup but this time without the schema and only the single table Accessories.

This works fine as excepted.

4. Now open the Alter table dialog in edbmgr.exe and confirm with OK, without to do any changes. This will change the checksum incorrectly!
5. Now again try to restore only the Accessories table from the backup.

Now you get an checksum error and you are not anymore able to restore the Accessories table alone form the backup. The schema is still the same but the checksum calculation is wrong as of a bug in TEDBVirtualTable.Save routine.

Comments Comments
From Rolf:

I have digged into the source to find out what is going wrong:
In TEDBVirtualTable.Save you do handle the saving of the index field different if "CRCOnly and FMaintenance" and only for "CRCOnly". In the case of "CRCOnly and FMaintenance" you don't include the index count into the calculation stream,where FIndexes.Save(Stream,CRCOnly) does write the index count for the calculation. As such we get two different CRC32 values.

Resolution Resolution
Fixed Problem on 5/31/2017 in version 2.26 build 1

Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial