验证数据类型

时间:2010-03-23 12:57:41

标签: ibm-midrange

如何验证RPG代码中的数据,如果字段是char类型,那么如何验证它应该只使用字母......

2 个答案:

答案 0 :(得分:2)

您可以使用%check()内置函数将输入限制为任意字符子集。以下是ILE RPG参考手册的基本片段:

%CHECK(比较器:base {:start})

%CHECK返回字符串基数的第一个位置,该位置包含未出现在字符串比较器中的字符。如果base中的所有字符也出现在比较器中,则该函数返回0。

答案 1 :(得分:1)

通常,只有当RPG是外部触发程序时,才应在RPG中进行数据验证。但无论如何,它取决于字段的数据类型以及"验证"应该完成。

%CHECK()函数可以验证字符字段是否只包含给定字符子集中的字符,但这只是许多可能"验证"的单个实例。不同的数据类型具有不同的验证类别。 DATE数据类型与基本字符字段不同,TIME数据类型与两者不同。各种数值数据类型与所有数据类型都不同。

此外,数据验证通常涉及语义内容。例如,字段可能被限制为范围或值列表。或者它可能涉及外键或与其他值的其他关系。

为了了解验证的编码,需要知道特定字段的精确要求。

在名为FLD01的字符字段中的'字母字符的特定情况下,验证可能是:

if ( %check('ABCDEFGHIJKLMNOPQRSTUVWXYZ' : FLD01 ) <> 0 ) ; SndErrmsg ('FLD01' : ALPHA_FAILED ) ; endIf ;

SndErrMsg()proc可能会发送一条消息,其中包含字段名称&#39; FLD01&#39;,嵌入在ALPHA_FAILED定义的文本中。

任何其他字段可能会有不同的&#34;验证&#34;。