Прогресс динамической проверки полей-4GL

Создал процесс, который связывает корпоративные данные из XML-файла с базой данных PROGRESS 4GL ... используя динамические запросы, я передаю имя таблицы, имя поля и его значение во включение, которое в настоящее время использует копию временной таблицы таблицы, которую я заполнение ... то, что я надеялся не делать, это писать конкретные предложения проверки для каждого заполняемого поля ... ожидалось, что предложение проверки схемы сработает, когда поле будет записано ... что я ожидаю, я Возможно, теперь придется получить предложения проверки из фактического поля таблицы, создать программу времени выполнения для выполнения проверки. hndField: Validation-Expression и hndField: Validation-Message ... своего рода поражение цели наличия динамического запроса, если мне нужно создать программу проверки времени выполнения для каждого поля.

Понятия, вызывающие у меня горе:

используя: DEFINE TEMP-TABLE Blah LIKE Foo.

1) Похоже, что не включает предложения проверки Foo для полей в Blah (подтвержденный просмотр hndField: Validate-Expression ... всегда возвращается? Для полей временной таблицы), даже если я назначаю проверку Foo и сообщение полю временной таблицы , выполняю обновление Blah.somefield не проверяется.

2) использование динамического запроса с; Назначьте hndField: Buffer-Value = "somevalue" без ошибок. даже если я запрашиваю, используя Foo вместо Blah, в назначении не используется условие проверки поля SCHEMA ... даже добавлено сообщение об отсутствии ошибки VALIDATE Foo.

3) Буферная копия Blah to Foo также не выполняет никаких проверок.

Как еще можно заставить проверку схемы поддерживать чисто динамическое связывание данных?


person bxdobs    schedule 01.04.2015    source источник


Ответы (1)


Вы просто пробовали добавить опцию VALIDATE?

DEFINE TEMP-TABLE Blah LIKE Foo VALIDATE.

Это будет работать так же хорошо (или плохо), как и обычная проверка.

Из онлайн-справки:

ПРОВЕРИТЬ

Поля временной таблицы наследуют от словаря выражения проверки и сообщения проверки от таблицы базы данных, имя-таблицы.

Лично я предпочитаю сохранять валидацию в коде и вне базы данных. По крайней мере, за исключением самой базовой проверки (возможно, для проверки наличия основной записи для подробной записи).

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

person Jensd    schedule 01.04.2015
comment
Я согласен. Проверка словаря ужасна. Это хорошая демонстрация (еще в 1985 году ...), но в остальном это плохой подход. - person Tom Bascom; 01.04.2015