프로그램 파트 소개
프로그램 파트는 하나의 시작점을 가진 기본 로직 파트입니다. 프로그램 파트는 런타임 프로그램에서 중심 로직을 정의합니다.
각 프로그램 파트는 프로그램 시작 시 실행되는 로직을 나타내는 main() 함수를 포함합니다. 프로그램은 기타 함수를 포함할 수 있으며 프로그램 외부에 있는 함수에 액세스할 수 있습니다. main() 함수는 기타 함수를 호출할 수 있습니다. 함수가 기타 프로그램에 대한 제어를 제공할 수 있습니다.
프로그램 파트는 스테레오타입을 사용하여 사용자 인터페이스의 코드를 전문화합니다. BasicProgram은 코어 EGL 패키지의 파트인 유일한 스테레오타입입니다. BasicProgram은 데이터베이스 또는 파일에 액세스할 수 있고 계산을 수행할 수 있으며 대부분의 EGL 문을 사용할 수 있습니다. 일부 UI 기술은 추가 스테레오타입을 제공합니다.
다수의 특성은 코드 작동에 영향을 미치는 프로그램 레벨에서 사용 가능합니다. 사용 가능한 특성은 UI 및 데이터 액세스 기술에 따라 다릅니다.
기본 프로그램 대 호출된 프로그램
기본 프로그램은 매개변수 없이 정의된
프로그램입니다. 기본 프로그램은 시스템 명령 또는 다른 기본 프로그램으로부터의 전송에 의해 시작될 때
실행됩니다. 호출된 프로그램은
매개변수로 정의된 프로그램입니다. call 문을 통해
다른 프로그램에서 호출된 프로그램을 호출합니다.
호출된 프로그램은 프로그램 레벨에서 매개변수를 처리합니다. 호출된 프로그램에는
매개변수가 없는 main() 함수가 있어야 합니다. 다음 예제는
호출된 프로그램을 표시합니다.
Program custProcessing1 type basicProgram (customerNum INT)
// 필수 main() 함수
function main()
// 현재 고객 이름 가져오기
// 전달된 고객 번호 기반
customerName = getCustName(customerNum);
...
end
// 다른 함수
Function getCustName(customerNum INT) returns (CHAR(25))
...
end
end
프로그램 선언 양식이 기본 프로그램인지 호출된 프로그램인지
여부를 판별합니다. 선언이 매개변수(또는 비어 있는 소괄호인 경우에도)를
포함하는 경우 이는 호출된 프로그램을 선언합니다. 호출된 프로그램을
기본 프로그램을 변경하려면 소괄호가 포함된 매개변수 목록을
제거하십시오. 예를 들어, 다음 행은 호출된 프로그램을 선언합니다.
program custProcessing1 type basicProgram (customerNum INT)
program custProcessing1 type basicProgram ()
다음 코드는 기본 프로그램을 선언합니다.
program custProcessing1 type basicProgram
프로그램을 호출할 때 사용하는 인수의 길이가
프로그램 선언에서 동등한 매개변수 길이와 일치해야 합니다.
다음 예제를 고려하십시오.
customerName CHAR(30)
...
call custProcessing1(customerName);
호출된 프로그램에 대해 다음 선언을 가정하십시오.
program custProcessing1 type basicProgram (custName CHAR(80) inout)
EGL이 customerName 변수에 포인터를 전달하므로 custName 변수는 30자의 실제 길이만 가집니다. 프로그램에서 올바른, custName 변수 중 31 - 80 위치에 쓰는 경우 랜덤 메모리를 겹쳐쓸 수 있습니다. 정의되지 않은 동작이 발생하려는 경우 EGL 디버거가 사용자에게 경고를 보냄을 참고하십시오.
호출된 프로그램에 대한 자세한 정보는 프로그램에서 제어 전송의 내용을 참조하십시오.