Progress
Version 9
Product Update Bulletin
CRC Validation
For each table, Progress computes a CRC value (database CRC) from selected elements of the table metaschema. When compiling a procedure, Progress inserts the database CRC for each database table the procedure accesses. The database CRC for each table is stored in the metaschema _File record _CRC field for the table. A matching CRC ensures that the schema referenced by the r-code is compatible with the table schema, regardless of its time stamp.
Time Stamps and CRCs
Time stamps and CRCs both help maintain database integrity, but they do it differently. Time stamps change whenever a table schema is updated or recreated at another time or place; CRCs change only when certain schema elements critical to field or record definitions change. As long as a table is structurally compatible with the r-code that references it, the CRCs match and the r-code can execute. It does not matter when or where the table’s schema was created or updated.
R-code Execution With CRCs
When executing a procedure using CRC validation, Progress follows these steps:
- For each table accessed by the r-code, check the time stamp. If it matches, execute the procedure. Otherwise, go to Step 2.
- If the table is in a database that was not connected using the Time Stamp (–tstamp) parameter when the procedure was compiled, check the CRC. If it matches, execute the procedure. Otherwise, reject the procedure.
Thus, if the time stamps match, Progress assumes that the database schema and r-code must be compatible. Otherwise, the CRCs determine the outcome.
NOTE: The Time Stamp (–tstamp) parameter is obsolete, and is supported only for backward compatibility.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |