2016-07-04 4 views
0

У меня есть физический файл без ключа (скажем, X), и я хочу получить к нему доступ в соответствии с ключом. Я использовал OPNQRYF с параметром KEYFLD и поделился с ним ODP. В программе rpgle я открываю файл X в последовательности прибытия (т. е. не указывая спецификации K на F). Программа rpg будет обрабатывать записи в соответствии с ключом или входящей последовательностью? Кроме того, я столкнулся странные ошибки, когда я делаюДоступ к ключам через OPNQRYF

Setll 1 XR 
read XR 

Рассмотрим XR как формат записи из файла X.It пропускает первую запись и чтение из второй записи вперед.

ответ

2

Если ваш файл не введен, он будет считываться в последовательности прибытия.

Для SETLL, попробуйте

SETLL *LOVAL XR

Это должно расположить прямо перед первой записью.

Если вы хотите получить доступ к файлу с помощью ключа, создайте над ним или логический файл с помощью ключа, который вы хотите. Затем обязательно укажите его в спецификации F как файл с ключом. Или просто используйте SQL для извлечения записей с предложением ORDER BY.

+0

Предлагается в OP, что программа читает из общего открытого пути данных (ODP), который был определен \ создан с помощью ключа доступа с ключами через файл Open Query File (OPNQRYF), по-видимому, с указанием имени (ов) поля, в параметре Key Field (KEYFLD). Важно, это ODP, а не if \, что «файл не имеет ключа». FWiW, чтобы позиционировать запись * first *, используйте 'SETLL * START X'. FWiW VIEW не может быть введен ключ [кроме случаев, когда используется для создания запроса ODP]; SQL-эквивалент ключевого LF является [двоичным основанием] INDEX. – CRPence

+0

Я не помню, что OPNQRYF был в оригинальном вопросе .. либо то, что я был низким на кофе. Или еще не видели OPNQRYF так долго, что я прочитал это. Ха-ха .. Спасибо за комментарий, Чарльз. – bvstone

Смежные вопросы