Validation expressions have no usefulness in modern code. They apply too late in the data entry cycle to be useful (validations are performed just before data is written to the db). Don't use them. You're on the wrong path.
If you do use them your assumption about changing them and having the change picked up by code without recompiling is wrong -- if you change a validation expression (or a format, a label or a help message) that change isn't noticed by code until you recompile (which is why it doesn't count as db CRC change).
Dictionary validation expressions made good demos back in the day but have never really been useful for real code. IMHO the capability should be deprecated and removed from the standard dictionary code -- and it could be dropped from the language without a tear being shed on my part too.
===================================================
Tom,
thanks for that.
Understand and am in agreement with you on what you have stated above.
However, just to explain myself a bit further, in my case I do not necessarily want to amend the validation expression on the current schema. What I want to do however, is to populate a field which has a validation expression on it with different values other than those in those in its current expression. The field is on the customer master and we want to place new values in it other than those values currently stated on the validation expression. As you could imagine the table is used virtually everywhere within the system.
My original question (thinking that the expression had to be true for the field to be populated) was concerning how to amend the expression without re-compiling everything? But when I did a test by creating a test DB, I found I could create a record with the field populated other than what is stated in the validation expression. This last bit puzzled me!
So, and please correct me if my understanding is incorrect on this, if I want to populate a field with different values to those held in its validation expression, I can do so without having to change the expression? Not having to change the expression then means I do not have to re-compile programs using that table?
Appreciate your time.
Regards, Barry.