0

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

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

如何防止用户在文本字段(字符类型)中输入特殊字符(如键盘中不可见的符号)?)

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

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

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

4

2 回答 2

3
  1. 为什么要进行此编辑检查?是因为您正在导出表并且导出例程没有逃脱管道吗?如果是这样,请修复导出例程!
  2. 话虽如此,人们确实不希望数据中有特殊字符的原因有很多,而且多年来我们了解到,应用程序并不是将数据放入文件的唯一方法。有像 DBU 和 WRKDBF 这样的实用程序,有像 FTP 和客户端访问文件传输这样的传输应用程序,还有像 ODBC 这样的外部协议,它允许 Excel、Web 应用程序和其他可以访问您的数据库的外部应用程序。最后,您自己系统上的存储过程和其他程序可以从其他文件中获取数据——这些文件尚未“清除”这些特殊字符。

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

于 2014-12-15T14:40:59.027 回答
3

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

于 2014-12-15T13:15:08.890 回答