【问题标题】:Dynamic Field Validation Progress-4GL动态字段验证 Progress-4GL
【发布时间】:2015-06-05 12:33:40
【问题描述】:

创建了一个流程,将企业数据从 XML 文件链接到 PROGRESS 4GL 数据库...使用动态查询,我将表名、字段名和它的值传递到当前使用临时表副本的包含我正在填充的表...我希望不必做的是为每个要填充的字段编写特定的验证子句...期望是架构验证子句会在写入字段时启动...什么我希望我现在可能要做的是从实际的表字段中获取验证子句,构建一个运行时程序来进行验证。 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 字段 Validation Clause ...甚至添加了 VALIDATE Foo 无错误。

3) Blah 到 Foo 的缓冲区复制似乎也没有进行任何验证

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

【问题讨论】:

    标签: validation dynamic field progress-4gl


    【解决方案1】:

    您是否尝试过添加“VALIDATE”选项?

    DEFINE TEMP-TABLE Blah LIKE Foo VALIDATE.
    

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

    来自在线帮助:

    验证

    临时表字段从字典继承验证表达式和来自数据库表 table-name 的验证消息。

    就我个人而言,我更喜欢将验证保留在代码中和数据库之外。至少除了最基本的验证(也许要确保有一个主记录和一个详细记录)。

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

    【讨论】:

    • 我同意。字典验证很糟糕。它“是一个很好的演示”(早在 1985 年......),但在其他方面是一个糟糕的方法。
    猜你喜欢
    • 2018-03-23
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多