NAT3176 Ошибка при вызове подпрограммы Adabas или в инвертированном списке
У меня проблемы с выяснением, как исправить эту ошибку в Natural Adabas. Я только начинаю с Natural на очень старой версии, и проблема, с которой я продолжаю пытаться запустить большинство существующих программ, написанных предыдущими разработчиками, заключается в том, что я продолжаю получать эту ошибку.
NAT3176 Ошибка при вызове подпрограммы Adabas или в инвертированном списке.
Поэтому я попытался создать очень простую программу с тем же результатом (см. Ниже). Кто-нибудь знает, как решить эту проблему или какие шаги можно предпринять для отладки?
Сначала я подумал, что список STUD не существует, хотя для него есть DDM. Есть ли способ, которым я мог бы проверить, что он существует?
Моя тестовая программа выглядит следующим образом:
0010 DEFINE DATA
0020 LOCAL
0030 1 STUD-VIEW VIEW OF STUD
0040 2 STUDNO
0050 END-DEFINE
0060 READ STUD-VIEW BY STUDNO
0070 DISPLAY STUDNO
0080 END-READ
0090 END
1 ответ
NAT3176: обнаружена несогласованность в инвертированном списке.
Это то, что говорят документы, поэтому, скорее всего, индекс («перевернутый список») поврежден.
Вам обязательно понадобится ваш администратор, чтобы исправить это.
Попробуйте исключить
BY STUDNO
из оператора READ.
Затем он выполнит
READ PHYSICAL
(«Полное сканирование таблицы» в реляционной БД), которое обращается к данным без использования индекса.
Это будет выглядеть примерно так:
DEFINE DATA
LOCAL 1 STUD-VIEW VIEW OF STUD
2 STUDNO
END-DEFINE
*
READ STUD-VIEW
DISPLAY STUDNO
END-READ
END