쓸모없는 레코드를 삭제해야합니다.AS/400에서 레코드 삭제
주소 파일과 주문 내역 파일이 있습니다. 소비자 제품을 보유한 회사에서 판매를하지 않는 많은 제품 문의 또는 판매 개시를 받게됩니다.
각 문의는 고객 번호 주소 파일에 레코드를 가져옵니다. 주문 내역 파일에는 동일한 고객 numn 및 접미어 필드가 있습니다. 000에서 시작하여 새 주문이있을 때마다 증가합니다. 사업의 대부분은 사실 반복 모델입니다.
'000'레코드 (여러 개의 000이있을 수 있음)가있는 고객은 이러한 파일에서 삭제하려는 제품을 구입하지 않은 것을 의미합니다.
나는 간단한 RPG 프로그램을 생각하고 있지만 가능한 경우 또는 다른 방법으로 SQL을 사용하는 것에 관심이 있습니다.
이 단계에서는 실제로 삭제하지 않고 검토 할 출력 파일로 제안 된 레코드를 복사하여 되돌릴 필요가있을 때 저장할 것입니다.
F Addressfile IF E
F OrderHistory IF E
**** create 2 output file clones but with altered name for now.
F Zaddressfile O E
F ZorderHistory O E
*inlr doweq *off
Read Addressfile lr
*inlr ifeq *off
move *off Flg000
exsr Chk000
Flg000 ifeq *on
iter
else exsr purge
endif
endif
enddo
Chk000 begsr
** 기본적으로 setll에 우리가 일치하는 고객 번호 이 다음 접미사 없습니다 = 000이 있으면 우리가 플래그 켜고 얻을로의 orderhistory 및 학년 때 락커룸에서 다른 논리 아웃.
purge subr은 주소록 읽기와 동일한 고객 번호를 사용하여 orderhistory 파일에서 제거하는 데 필요한 레코드를 다시 읽어야합니다. 왜냐하면 나는 고객에게 어떤 가치에 subr이 있는지 확신 할 수 없기 때문에 그것을 저장하고 싶지 않습니다.
주소 파일을 포함하여 새 파일에 기록한 다음 주소 파일에 다음 고객을 읽을 수 있습니다.
우리는 누군가가 구입했다면, 아마도 001을 가지고있을 수 있다고 생각하지 않을 수 있습니다.
우리가 그렇게했다면 간단히 말해서 사용할 수 있습니다.
는 무엇인가 질문? –
나는 일괄 처리를 위해 SQL을 사용하는 것보다 네이티브 IO를 사용하는 속도의 향상을 보여줄 것이지만 지금은 어디 있는지 알지 못한다고 맹세했습니다. Anecdotally, 나는 약 24 시간에서 2 시까 지 진행되는 과정을 다시 작성했다. (네이티브 - IO가 '사용'하기 힘든 몇 가지 새로운 지표와 함께) –