动态字段验证Progress-4GL

时间:2015-04-01 00:45:47

标签: validation dynamic field progress-4gl

创建了一个将XML文件中的企业数据链接到PROGRESS 4GL数据库的流程...使用动态查询,我将表名,字段名称和它的值传递给当前使用临时表副本的包含table我正在填充...我希望不要做的是为每个填充的字段编写特定的验证子句...期望Schema Validation子句在写入字段时会启动...我希望我现在可能要做的是从实际的表字段中获取验证子句,构建一个运行时程序来进行验证。 hndField:Validation-Expression和hndField:Validation-Message ...如果我必须为每个字段构建一个运行时验证程序,就会失去动态查询的目的。

导致我悲伤的概念:

使用:DEFINE TEMP-TABLE Blah LIKE Foo。

1)似乎没有在Blah中的字段中包含Foo验证子句(已确认查看hndField:Validate-Expression ...总是返回?用于临时表字段)即使我将Foo验证和消息分配给Temp -table字段,进行更新Blah.somefield未经过验证。

2)使用动态查询; 分配hndField:Buffer-Value =“somevalue”无错误。 即使我使用Foo而不是Blah进行查询,分配也不会使用SCHEMA字段验证条款......甚至添加了VALIDATE Foo无错误。

3)缓冲区复制Blah to Foo似乎也没有做任何验证

还有什么方法可以强制架构验证来保持这些数据纯粹是动态链接的?

1 个答案:

答案 0 :(得分:0)

您是否只是尝试添加' VALIDATE'选项?

DEFINE TEMP-TABLE Blah LIKE Foo VALIDATE.

这将与正常验证一样好(或坏)。

在线帮助:

  

VALIDATE

     

temp-table字段从字典继承数据库表table-name中的验证表达式和验证消息。

我个人更喜欢在代码和数据库之外保持验证。至少除了最基本的验证(可能确保有详细记录的主记录)。

我发现词典方法有限且难以维护。但我想这只是基于意见的。