Consultor Eletrônico



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.