Dynamic Field Validation Progress-4GL
创建一个将XML文件中的企业数据链接到PROGRESS 4GL数据库的过程...使用动态查询,我将表名,字段名和它的值传递给当前使用我正在填充的表的临时表副本...我希望不需要做的是为填充的每个字段编写特定的验证子句......期望的是当字段是字段时,模式验证子句将启动正在写...我期望我现在可能要做的是从实际表字段获取验证子句,构建一个运行时程序来执行验证。 hndField:Validation-Expression和hndField:Validation-Message ...如果我必须为每个字段构建一个运行时验证程序,那么这种类型会破坏动态查询的目的。Dynamic Field Validation Progress-4GL
概念是导致我的悲伤:
使用:DEFINE TEMP-TABLE胡说类似foo。
1)在Blah中的字段中未显示包含Foo验证子句(已确认的查看hndField:Validate-Expression ...对于临时表字段总是返回?)即使将Foo验证和消息分配给临时表字段,进行更新Blah.somefield未验证。
2)使用Dynamic Query with; 分配hndField:Buffer-Value =“somevalue”无错误。 即使我使用Foo而不是Blah查询,赋值不会使用SCHEMA字段验证子句...甚至会添加VALIDATE Foo无错误。
3)缓冲区拷贝到胡说美孚还没有出现做任何验证
还能如何强制模式验证,以保持该数据链接纯粹的动态?
您是否简单地尝试添加'VALIDATE'选项?
DEFINE TEMP-TABLE Blah LIKE Foo VALIDATE.
这将与正常验证一样好(或差)。
从在线帮助:
VALIDATE
临时表的字段继承,从字典中,验证表达式并验证消息从数据库表,表名。
就我个人而言,我更喜欢在代码和数据库外进行验证。至少除了最基本的验证(可能确保有详细记录的主记录)。
我发现字典的方法有限,难以维护。但我想这只是基于意见而已。
我同意。字典验证是可怕的。它“做了一个很好的演示”(早在1985年......),但是否则就是一个糟糕的方法。 – 2015-04-01 11:26:04