DLISegment 스테레오타입
DLISegment 스테레오타입은 계층 구조 데이터베이스와 함께 사용하기 위해 레코드 파트를 특수화합니다.
DL/I 데이터베이스에서 액세스할 각 세그먼트 유형에는 사용자의 프로그램에서 동등한 DLISegment 레코드가 있어야 합니다.
소비자 정보를 보유하는 데이터베이스를 고려하십시오. 각 고객에 대해 신용 상태, 히스토리 및 개인 위치 세그먼트가 있습니다. 각 위치에는 주문 세그먼트가 있고 각 주문에는 품목 세그먼트가 있습니다. 이 예제를 위한 다이어그램과 코드에 대해서는 이 주제의 마지막 부분에 있는 관련 개념을 참조하십시오.
EGL 프로그램에서 이 데이터베이스에 액세스하려면 고객, 신용, 히스토리, 위치, 주문 및 품목에 대해 DLISegment 유형의 레코드를 작성하십시오.
DLISegment 레코드 내의 필드 구조는 DL/I가 사용자의 프로그램에 제공하는 세그먼트의 구조와 일치해야 합니다.
- DL/I 세그먼트에서와 동일한 유형, 길이 및 위치로 keyItem 및 lengthItem 필드를 정의하십시오.
- DL/I 세그먼트가 논리적 하위인 경우, 대상 상위의 연결 키와 교차 데이터를 포함하도록 DLISegment 구조를 정의하십시오.
- DL/I 세그먼트가 논리 데이터베이스의 연결 세그먼트인 경우, 연결 키, 교차 데이터 및 대상 상위 세그먼트를 포함하도록 DLISegment 구조를 정의하십시오.
- DL/I 세그먼트가 필드 레벨 감도 기능을 사용하여 DL/I PSB에서 재정의된 경우, 세그먼트의 PSB 뷰와 일치하도록 DLISegment 구조를 정의하십시오.
다음은 DLISegment 레코드의 예제입니다.
Record CustomerRecordPart type DLISegment
{ segmentName="STSCCST", keyItem="customerNo" }
10 customerNo char(6) { dliFieldName = "STQCCNO" }; //key field
10 customerName char(25) { dliFieldName = "STUCCNM" };
10 customerAddr1 char(25) { dliFieldName = "STQCCA1" };
10 customerAddr2 char(25) { dliFieldName = "STQCCA2" };
10 customerAddr3 char(25) { dliFieldName = "STQCCA3" };
end