Kbase P113806: CRC value changes differ when comparing a 10.0B database to 10.0B02
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/6/2008 |
|
Status: Unverified
FACT(s) (Environment):
OpenEdge 10.0B
OpenEdge 10.1A
SYMPTOM(s):
CRC value changes differ when comparing a 10.0B database to 10.0B02
CRC value changes differ when comparing a 10.0B database to 10.0B03
CRC value changes differ when comparing a 10.0B01 database to 10.0B02
CRC value changes differ when comparing a 10.0B01 database to 10.0B03
CRC value changes differ when comparing a 10.0B database to 10.1A
CRC value changes differ when comparing a 10.0B01 database to 10.1A
CRC value changes when applying same df to 10.0B or 10.0B03 databases.
CRC values don't match after apply a delta df file.
CAUSE:
Progress Bug# 20060224-012
FIX:
After upgrading to 10.0B02 or higher you need to force a recalculation of the CRC so any tables with CLOB/BLOB fields will have the correct CRC value.
There are many ways to do this. Here is a simple piece of code that will force the CRCs to be updated for all CLOB and BLOB fields in a database (you have to uncomment the code to actually do the change). It will display the new CRCs and the _fld-stdtype being changed. Please make sure you back up your database before doing this.
DEFINE VARIABLE itype AS INTEGER NO-UNDO.
DEFINE VARIABLE icrc AS INTEGER NO-UNDO.
FOR EACH _file NO-LOCK,
EACH _field OF _file WHERE
_field._dtype >= 18 AND
_field._dtype <= 20 :
/* Uncomment to change the CRC
icrc = _file._CRC.
itype = _field._fld-stdtype.
_field._fld-stdtype = (IF itype = ? THEN 0 ELSE ?).
_field._fld-stdtype = itype.
DISPLAY
_file._file-name
icrc
_file._CRC
_field._field-name
_field._data-type
_field._fld-stdtype
itype.
*/
DISPLAY
_file._file-name
_field._field-name
_field._data-type.
END.