Kbase P100546: Error 1896 occurs when running uncompiled code against multiple databases in the same session
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  19/01/2010 |
|
Status: Verified
SYMPTOM(s):
Error 1896 occurs when running uncompiled code against multiple databases in the same session
** CRC for <filn> does not match CRC in <procedure>. Try recompiling. (1896)
Running the same code against different databases
No r-code files (.r) present
Disconnecting and reconnecting to the different databases within the same session
Database schemas are different
FACT(s) (Environment):
Progress 8.x
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
OpenEdge Category: Language (4GL/ABL)
CAUSE:
This is expected behavior.
For performance reasons the uncompiled code is only compiled and stored in memory the first time it is run. Subsequent runs will reuse the r-code as it is in memory. The r-code in memory will keep track of table CRCs just like a saved r-code file.
Therefore, if the procedure is run the first time against one database, and subsequent runs are done when connected to a database with a different schema, the CRC errors will occur.
FIX:
Use the COMPILE statement to force a recompile of the procedure in memory before RUNning it.