В зависимости от того, сколько лет приложению, вы не сможете найти его в своем каталоге SQL.К сожалению, многие (большинство?) RPG-приложения не используют всю мощь базы данных DB2, включая индексы, представления и ограничения.это меняется медленно, но, скорее всего, вам придется искать логические файлы с уникальными ключами.Возможно, не определен первичный ключ.Вы можете заглянуть в каталог SQL, но если вы не найдете то, что ищете, скорее всего вам поможет следующее:
Найдите логические файлы, связанные с физическим файлом.(таблица), используя DSPDBR <table name>
.Вы можете нажать F4, чтобы запросить параметры, если вы не знаете, как должна выглядеть командная строка.
Если вы можете найти источник для логических файлов (вероятно, в исходном файле QDDSSRC), проверьте это, и если у него есть ключевое слово UNIQUE
над строкой формата записи, то это можно считать первичным ключом или, по крайней мере, уникальным ключом.Убедитесь, что в нижней части источника нет выбора записей.Подобных логических файлов может быть несколько.
Другой способ определить, имеет ли логический файл уникальный ключ, - использовать команду DSPFD <logical file>
.Затем найдите в появившемся окне «Уникальный».Экран должен выглядеть примерно так:
File . . . . . : QPDSPFD
Control . . . . . __________
Find . . . . . . Unique
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
Access path maintenance . . . . . . . . . . : MAINT *IMMED
Unique key values required . . . . . . . . : UNIQUE Yes
Select/omit specified . . . . . . . . . . . : No
Access path journaled . . . . . . . . . . . : No
Access path . . . . . . . . . . . . . . . . : Keyed
Number of key fields . . . . . . . . . . . : 3
Record format . . . . . . . . . . . . . . . : JCNCXR
Key field . . . . . . . . . . . . . . . . : XFNCMNO
Sequence . . . . . . . . . . . . . . . : Ascending
Sign specified . . . . . . . . . . . . : SIGNED
Zone/digit specified . . . . . . . . . : *NONE
Alternative collating sequence . . . . : No
Key field . . . . . . . . . . . . . . . . : XFJOBYR
Sequence . . . . . . . . . . . . . . . : Ascending
Sign specified . . . . . . . . . . . . : SIGNED
Zone/digit specified . . . . . . . . . : *NONE
Alternative collating sequence . . . . : No
Key field . . . . . . . . . . . . . . . . : XFJOBNO
Sequence . . . . . . . . . . . . . . . : Ascending
Строка Unique key values required . . . . . . . . : UNIQUE Yes
указывает, что логический файл содержит уникальный ключ.Следующая строка Select/omit specified . . . . . . . . . . . : No
указывает на то, что в логическом файле отсутствует логика выбора записей, поэтому она содержит все записи в физическом файле.и линии внизу показывают ключевые поля по порядку.Это настолько близко к первичному ключу, насколько вы можете получить с логическими файлами.Поскольку каждый логический файл, относящийся к физическому файлу, может иметь уникальный ключ, большинство приложений будет использовать наименование для определения первичного ключа, иногда это будет суффикс L00 или L01 к имени файла.
Чтобы усложнить ситуациюБолее того, сам физический файл может иметь уникальный ключ.Вы можете посмотреть на источник или использовать DSPFD <physical file>
, чтобы определить это.
Это некоторые уникальные особенности DB2 for i, которые недоступны в других вариантах DB2.И раньше было так, что программисты RPG использовали исключительно физические и логические файлы, а не SQL-сущность базы данных DB2.