[progress Communities] [progress Openedge Abl] Forum Post: Change In Nr Of Decimals, But...

  • Thread starter Thread starter Patrick Tingen
  • Start date Start date
Status
Not open for further replies.
P

Patrick Tingen

Guest
TLDR; I change the number of decimals on a field, but old programs that were not recompiled still run without errors. They perform as if the database change did not happen. Is this a bug? Step 1: preparation My starting point is an OpenEdge 10.2B sports database with a decimal field with 2 decimals. See below a screenshot from the DataDigger: The CRC for the "item" table is 40569: I created a small program that sets the price of item nr 31 to 3.1415925: /* SetPrice.p */ DEFINE BUFFER bItem FOR sports11.Item. FIND bItem WHERE bItem.Item-num = 31. ASSIGN bItem.Price = 3.1415925. I compiled the program and renamed the .p to .txt to make sure that the .r was executed and not the .p: I double-checked the .r file for the correct CRC value: RCODE-INFO:FILE-NAME = 'c:\Temp\setprice.r' . MESSAGE RCODE-INFO:TABLE-LIST RCODE-INFO:TABLE-CRC-LIST VIEW-AS ALERT-BOX INFO BUTTONS OK. Result: The value of Item 31 before and after running: So far, so good. The field has 2 decimals to the value is rounded to 2 decimals. This is correct. Step 2: the change I change the definition of the price field to 10 decimals: If I look at the CRC of the item table, I can see that it has changed - as expected: Via the DataDigger I reset the value of the field back to 0 before testing: I re-run my program without recompiling. To make sure it actually runs I check for errors: RUN c:\Temp\setprice.r NO-ERROR. MESSAGE ERROR-STATUS:ERROR ERROR-STATUS:NUM-MESSAGES VIEW-AS ALERT-BOX INFO BUTTONS OK. Result: The value in the database is now: My conclusion is that the old .r ran successfully, since I received no error and the value of the field changed from 0 to 3.14. But how could the program have runned if the CRC value is different? I would have expected an error.

Continue reading...
 
Status
Not open for further replies.
Back
Top