【问题标题】:RPG Restrict user entry of the special character '|' in any Name fields or any data entry fieldsRPG 限制特殊字符“|”的用户输入在任何名称字段或任何数据输入字段中
【发布时间】:2014-12-15 22:40:59
【问题描述】:

我想限制用户在任何名称字段或数据输入字段中输入特殊字符 '|'(竖线)。

检查应该从屏幕本身而不是通过 RPG/RPGLE 程序进行(如此处所述

How to prevent user from entering special characters (like symbols not visible in keyboard) in a text field (Character type)?)

我试过在显示文件中使用VALUES()函数,它只允许函数中提到的那些字符;例如。

VALUES('A' 'B'...)

而不是保留'|'在其中禁止它,但它变得非常受限制,因为人们可能会禁止他不应该允许的事情。

【问题讨论】:

  • 除非输入字段只有一个字符宽,否则 VALUES() 无济于事。显示文件不具备您要求的功能,在任何情况下都不是好习惯。在验证程序中验证数据要好得多。

标签: ibm-midrange rpgle rpg


【解决方案1】:

我认为最简单的方法是在运行时进行编辑检查,而不是试图让您的工作站进行编辑。

【讨论】:

    【解决方案2】:
    1. 为什么要进行此编辑检查?是不是因为你是 导出表并且导出例程不会逃脱管道? 如果是这样,请修复导出例程!
    2. 话虽如此,但人们确实没有这样做的原因有很多 想要数据中的特殊字符,以及我们学到的东西 岁月是,应用程序不是获得的唯一途径 数据到文件中。有像 DBU 和 WRKDBF 这样的实用程序,有 是传输应用程序,如 FTP 和客户端访问文件传输, 有诸如 ODBC 之类的外部协议允许 Excel、Web 应用程序和其他外部应用程序可以达到 你的数据库。最后,还有存储过程等 您自己系统上的程序可以从其他文件中获取数据 - 尚未“清除”这些特殊字符的文件。

    我认为@david 有正确的答案 - 在运行时检查数据。我实现这一点的方式是使用触发器。这样一来,无论尝试使用特殊字符插入或更新您的字段,数据库本身都会拒绝该尝试。

    【讨论】:

    • 嗨,巴克。 1. 应该进行编辑检查,因为我们正在从上游获取一些数据的 CRAP 数据。 '|'正在以正确的形式发送,但它在中间件端的 XML 映射期间以某种方式被丢弃。 2. 正如@David 指出的那样,它可以在运行时完成,但是从工作站执行相同的操作会减少麻烦,因为有很多可能的区域可以发送这些值。话虽如此,我想按照你们的建议进行操作,并将返回结果。
    • 解决方案可能是基于坏字符来自何处的解决方案组合。我的大问题是来自 Java 应用程序的 Unicode 字符,人们从 MS Word 粘贴文本。在开始删除部分文本之前,您确实需要了解问题的根源。
    猜你喜欢
    • 2023-03-09
    • 2018-11-07
    • 2012-04-24
    • 2017-12-17
    • 1970-01-01
    • 2012-01-29
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多