Проверьте тип данных - PullRequest
1 голос
/ 23 марта 2010

Как проверить данные в коде RPG, например, если поле имеет тип char, как проверить, что оно должно принимать только алфавиты .....

Ответы [ 2 ]

2 голосов
/ 23 марта 2010

Вы можете ограничить ввод произвольным подмножеством символов, используя встроенную функцию% check (). Ниже приведен обязательный фрагмент справочного руководства ILE RPG:

% CHECK (компаратор: база {: начало})

% CHECK возвращает первую позицию строкового основания, содержащего символ, который не отображается в компараторе строк. Если все символы в базе также появляются в компараторе, функция возвращает 0.

1 голос
/ 24 марта 2014

Как правило, проверка данных должна выполняться в RPG, только если RPG является внешней триггерной программой. Но в любом случае это зависит от того, какой тип данных является полем и какую «проверку» следует выполнить.

Функция% CHECK () может проверить, есть ли в символьном поле только символы, которые находятся в данном подмножестве символов, но это только один случай из многих возможных «проверок». Различные типы данных имеют разные категории проверок. Тип данных DATE отличается от базовых символьных полей, а тип данных TIME отличается от обоих. Различные числовые типы данных отличаются от всех этих.

Кроме того, проверка данных часто включает семантическое содержание. Например, поле может быть ограничено диапазоном или списком значений. Или это может включать внешние ключи или другие отношения с другими значениями.

Чтобы узнать код для проверки, необходимо знать точные требования для конкретной области.

В конкретном случае 'буквенных символов в символьном поле с именем FLD01 проверка может быть такой:

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

Процесс SndErrMsg () может отправить сообщение с именем поля «FLD01», встроенным в текст, определенный ALPHA_FAILED.

Любое другое поле может иметь другую «проверку».

...