Consultor Eletrônico



Kbase P129316: 4GL/ABL: Why is the r-code generated by compiling the same .p at different times is not the same whe
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/28/2008
Status: Unverified

GOAL:

4GL/ABL: Why is the r-code generated by compiling the same .p at different times is not the same when compared using a bit by bit compare utility?

GOAL:

How to determine that two versions of r-code are the same without using the Time Stamp (-tstamp) client connection startup parameter?

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.1x

FIX:

1. The r-code generated by the Progress/OpenEdge compiler contains padding spaces for alignment. These are not set trimmed out by the compiler. Hence, a bit by bit comparison utility will detect and report these padding spaces as differences. This explains the variance when comparing the r-code using a bit by bit file compare utility like Beyond Compare. Such utilities can not be relied upon to ensure OpenEdge 4GL/ABL r-code integrity or changes.
2. To determine that two versions of r-code are the same without using the Time Stamp (-tstamp) client connection startup parameter, use either the RCODE-INFO:CRC-VALUE or the or the RCODE-INFO:MD5-VALUE attribute of the RCODE-INFO system handle. The RCODE-INFO:CRC-VALUE attribute is a unique integer value automatically generated whenever you compile and save a 4GL/ABL procedure. The RCODE-INFO:MD5-VALUE is generated whenever you compile and save a 4GL/ABL procedure using the GENERATE-MD5 option of the COMPILE statement. For example:
COMPILE ProcedureName.p GENERATE-MD5 SAVE.