2016-07-04 1 views
0

키가 아닌 실제 파일 (예 : X)이 있는데 키에 따라 액세스하려고합니다. KEYFLD 매개 변수와 함께 OPNQRYF를 사용하고 ODP를 공유했습니다. 파일 X를 여는 중입니다 도착 시퀀스 (즉, F 스펙에서 K를 지정하지 않음). rpg 프로그램이 키 또는 도착 시퀀스에 따라 레코드를 처리합니까? 내가OPNQRYF를 통한 키 입력

Setll 1 XR 
read XR 

이 파일 X.It의 레코드 형식은 첫 번째 레코드를 건너 뛰고 이후 두 번째 레코드에서 읽는 등 XR을 고려하고있는 중이 야 때 또한 나는 이상한 오류에 직면하고있다.

답변

2

파일에 키가 입력되어 있지 않으면 도착 순서대로 읽습니다.

SETLL를 들어

, 오른쪽 첫 번째 레코드 앞에 위치한다

SETLL *LOVAL XR

을 시도합니다.

키를 통해 파일에 액세스하려면 원하는 키로보기 또는 논리 파일을 작성하십시오. 그런 다음 F 스펙에 키순 파일로 지정해야합니다. 또는 SQL을 사용하여 ORDER BY 절을 사용하여 레코드를 검색하십시오.

+0

OP에서 제안되는 것은 프로그램이 OPNQRYF (열린 쿼리 파일)를 통해 키순 액세스 경로로 생성 된 정의 된 공유 ODP (Open Data Path)에서 읽음으로써 명백하게 필드 이름을 지정하는 것입니다. 키 필드 (KEYFLD) 매개 변수에서. 중요한 것은 ODP가 "파일에 키가 설정되어 있지 않은"경우가 아니라 ODP입니다. * 첫 번째 레코드에 위치 시키려면'SETLL * START X'를 사용하십시오. VIEW에는 키를 입력 할 수 없습니다 ([ODP 쿼리 작성시] 제외). 키가있는 LF의 SQL 상당은 [2 진 기수] INDEX입니다. – CRPence

+0

원래 질문에 OPNQRYF가 있다는 것을 기억하지 못합니다. 저도 커피가 부족했습니다. 아니면 오랫동안 OPNQRYF를 보지 못했다. 바로 위에 읽었다 .. 하하 .. 코멘트 주셔서 감사합니다, Charles. – bvstone