lengthItem

lengthItem 특성은 EGL이 변수 길이 레코드를 읽거나 쓸 때 사용되는 필드를 식별합니다.

다음 스테레오타입 중 하나만 있는 lengthItem 특성을 사용하십시오.
  • SerialRecord
  • IndexedRecord
  • MQRecord
  • DLISegment

EGL은 파일에서 레코드로 읽을 때 필드를 설정하고 해당 필드를 사용하여 파일에 쓸 바이트 수를 판별합니다. 레코드의 최대 길이는 레코드에 대해 정의된 필드를 기반으로 합니다. 가변 길이 레코드를 파일에 쓰는 경우, lengthItem에 의해 필드에 지정된 값은 최대 길이보다 작거나 같아야 합니다.

길이 필드는 다음과 같은 변수가 될 수 있습니다.
  • 동일한 레코드 내의 구조 필드
  • 프로그램에 대해 글로벌이거나 레코드에 액세스하는 함수에 대해 로컬인 레코드의 구조 필드(길이 필드는 프로그램 또는 함수에 선언된 레코드 변수로 규정될 수 있음)
  • 프로그램에 대해 글로벌이거나 레코드에 액세스하는 함수에 대해 로컬인 변수(이 주제의 "예제" 절 참조).

길이 필드는 9자리 이하의 정수입니다.

가변 길이 레코드를 사용하는 경우, lengthItem 특성, numElementsItem 특성 또는 둘 다를 지정해야 합니다. EGL이 파일에 레코드를 쓸 때 두 특성이 모두 있으면 레코드를 쓰기 전에 numElementsItem 필드를 사용하여 레코드의 전체 길이를 계산한 후 해당 길이를 lengthItem이 지정하는 변수에 배치합니다. 자세한 정보는 가변 길이 레코드의 내용을 참조하십시오.

예제

다음 예제는 레코드 외부의 변수를 가리키는 lengthItem 특성이 있는 가변 길이 레코드 파트를 표시합니다.
  Record SerialRecordPart1 type serialRecord
    {
      fileName = "myFile",
      lengthItem = myOtherField
    }
    10 myField01 BIN(4);   // 2 bytes long
    10 myField02 NUM(3);   // 3 bytes long
    10 myField03 CHAR(20); // 20 bytes long
  end
myOtherField NUM(4);
레코드를 쓸 때 길이 필드의 값은 마지막 필드가 문자 필드가 아닌 경우 필드 경계와 일치해야 합니다. 예를 들어, SerialRecordPart1 유형의 레코드에는 길이 필드 myOtherField가 있을 수 있으며 다음 값으로 설정됩니다.
2
쓰여진 레코드에 myField01만 포함됩니다.
5
쓰여진 레코드에 myField01myField02가 포함됩니다.
6 - 25
쓰여진 레코드에 myField01, myField02myField03의 일부가 포함됩니다.

호환성

표 1. lengthItem에 대한 호환성 고려사항
플랫폼 문제
DL/I lengthItem 변수에는 DL/I 세그먼트에서 해당 필드 자체를 포함하여 전체 세그먼트의 길이를 포함하는 필드의 이름이 있습니다. 세그먼트에 가변 길이가 있는 경우에는 lengthItem을 지정해야 합니다. 이 필드는 SMALLINT여야 하며, DL/I 데이터베이스 설명의 세그먼트의 길이 필드와 동일한 길이 및 오프셋이 있어야 합니다.

lengthItem이 가리키는 필드는 일반적으로 세그먼트의 첫 번째 필드입니다. 그러나 논리 데이터베이스의 연결 세그먼트가 고정 길이 세그먼트 다음에 가변 길이 세그먼트로 빌드되는 경우는 이에 해당하지 않습니다.

WebSphere® MQ 프로그램이 메시지 큐에 레코드를 추가하는 경우, 메시지 길이는 lengthItem 특성이 지정하는 변수의 값과 동일하게 설정됩니다. 프로그램이 큐에서 메시지를 읽는 경우, 메시지 길이는 lengthItem 특성이 지정하는 변수에 리턴됩니다. lengthItemnumElementsItem 특성 둘 다의 변수 이름을 지정하는 경우, lengthItem 변수는 큐에 메시지가 추가되기 전에 레코드의 요소 수에서 계산된 길이로 설정됩니다.

다른 플랫폼 및 자원 연관 문제에 대해서는 numElementsItem 절의 "호환성"을 참조하십시오.