Validation 动态现场验证进度-4GL

Validation 动态现场验证进度-4GL,validation,dynamic,field,progress-4gl,Validation,Dynamic,Field,Progress 4gl,创建了一个将企业数据从XML文件链接到PROGRESS 4GL数据库的进程。。。使用动态查询,我将表名、字段名及其值传递到一个include中,该include当前使用我正在填充的表的临时表副本。。。我希望不必为每个填充的字段编写特定的验证子句。。。我们的期望是,在编写字段时,模式验证子句将生效。。。我希望我现在要做的是从实际的表字段中获取验证子句,构建一个运行时程序来进行验证。hndField:验证表达式和hndField:验证消息。。。如果我必须为每个字段构建一个运行时验证程序,那么就有点违

创建了一个将企业数据从XML文件链接到PROGRESS 4GL数据库的进程。。。使用动态查询,我将表名、字段名及其值传递到一个include中,该include当前使用我正在填充的表的临时表副本。。。我希望不必为每个填充的字段编写特定的验证子句。。。我们的期望是,在编写字段时,模式验证子句将生效。。。我希望我现在要做的是从实际的表字段中获取验证子句,构建一个运行时程序来进行验证。hndField:验证表达式和hndField:验证消息。。。如果我必须为每个字段构建一个运行时验证程序,那么就有点违背了动态查询的目的

让我悲伤的概念:

使用:像Foo一样定义TEMP-TABLE Blah

1似乎未在Blah确认查看hndField:Validate Expression中的字段上包含Foo验证子句。。。总是回来吗?对于临时表字段,即使我将Foo验证和消息分配给临时表字段,也不会验证更新Blah.somefield

2、使用动态查询方式进行查询; 分配hndField:Buffer Value=somevalue无错误。 即使我使用Foo而不是Blah进行查询,赋值也不会使用SCHEMA字段验证子句。。。甚至添加了一个VALIDATE Foo no error

3缓冲区复制到Foo似乎也不会进行任何验证


否则,如何强制模式验证以保持此数据链接完全动态?

您是否已尝试添加“验证”选项

DEFINE TEMP-TABLE Blah LIKE Foo VALIDATE.
这将和正常的验证一样好或坏

从联机帮助:

证实

临时表字段从字典中继承数据库表、表名中的验证表达式和验证消息

就个人而言,我更喜欢将验证保留在代码中,而不保留在数据库中。至少除了最基本的验证,可能是为了确保细节记录有一个主记录


我发现字典方法有限,很难维护。但我想这只是基于观点。

我同意。字典验证很糟糕。这是一个很好的演示早在1985年。。。但在其他方面,这是一种糟糕的做法。