DL/I 데이터베이스 지원

EGL은 COBOL 환경을 위한 계층 구조 데이터베이스 관리자인 DL/I(Data Language/I)를 지원합니다.

EGL 생성 코드는 다음 대상 시스템의 DL/I 데이터베이스에 액세스할 수 있습니다.
  • z/OS®용 CICS®
  • IMS™ BMP
  • IMS/VS
  • z/OS 일괄처리
EGL은 두 가지 방법으로 이 액세스를 구현합니다.
  • 출력 COBOL 코드에 DL/I 문을 생성하는 add, getreplace와 같은 EGL I/O 키워드를 사용할 수 있습니다. EGL이 EGL 키워드로부터 생성하는 기본 DL/I 문을 암시적 DL/I 문이라고 합니다. (이러한 명령문을 사용자 정의할 수 있습니다.)
  • 명시적 DL/I 문을 직접 코드할 수 있습니다. 두 가지 방법으로 명시적 명령문을 코드할 수 있습니다.
    • #dli 구문을 통해 EGL I/O 키워드 명령문을 사용자 정의하는 방법. 자세한 정보는 #dli 지시문의 내용을 참조하십시오.
    • 라이브러리 함수 dliLib.AIBTDLI, dliLib.EGLTDLI 또는 vgLib.VGTDLI를 사용하여 DL/I 호출을 코딩하는 방법. AIBTDLI(), EGLTDLI()VGTDLI()의 내용을 참조하십시오.

암시적 및 명시적 DL/I 코드는 실제 DL/I 코드와는 약간 다른 강력한 의사 DL/I 구문을 사용합니다. 자세한 정보는 #dli 지시문를 참조하십시오.

DL/I에 익숙하지 않은 경우, EGL 프로그래머 안내서에서 DL/I 데이터의 내용을 참조하십시오.

일반 DL/I 처리

DL/I 데이터베이스에서 읽을 각 세그먼트 유형에 대해 DLISegment 스테레오타입의 레코드를 작성해야 합니다(DLISegment 스테레오타입 참조).

또한 데이터베이스를 EGL에 설명하는 PSBRecord 스테레오타입의 레코드도 작성해야 합니다(PSBRecord 스테레오타입 참조). PSBRecord는 EGL이 DL/I 데이터베이스를 위한 PSB(Program Specification Block)와 상호작용하는 데 필요한 정보를 포함합니다. PSB는 다양한 세그먼트와 해당 계층을 나열하는 일종의 데이터베이스 맵입니다.

EGL I/O 문(예: get)을 사용하여 데이터베이스의 데이터에 액세스하십시오. DL/I는 SSA(Segment Search Argument)를 사용하여 데이터베이스에서 개별 세그먼트(레코드와 동등)를 찾습니다. 규정되지 않은 SSA는 세그먼트 유형만 지정합니다. 규정된 SSA는 특정 세그먼트를 식별합니다. EGL은 생성하는 암시적 코드의 파트로 SSA를 작성합니다. 또는 #dli 지시문에 명시적 코드의 파트로 SSA를 쓸 수도 있습니다.