암시 SQL문 보기
EGL은 SQL 레코드 변수를 대상으로 지정하는 EGL 데이터 액세스 명령문(add 또는 get 등)이 사용될 때마다 암시 SQL문을 작성합니다. 이 기능은 SQL을 전혀 모르는 사용자도 관계형 데이터베이스를 액세스하는 함수를 작성할 수 있게 해 줍니다. 이 기능을 사용하면 사용자 정의할 수 있는 기본 SQL 코드도 생성할 수 있습니다.
EGL은 SQL 레코드 정의에 따라 기본 SELECT 문을 표시할 수도 있습니다.
기본 SELECT 문
SQL 레코드 정의의 첫 번째 행을 마우스 오른쪽 단추로 클릭하고 SQL 레코드를 선택하십시오. 다음 선택사항을 제공하는 두 번째 메뉴가 표시됩니다.
- SQL 검색
- 레코드를 정의하는 중인 경우 이 옵션은 데이터베이스 테이블의 필드에 따라 레코드 정의를 생성하도록 EGL에 요청합니다. SQL 테이블 데이터 검색을 참조하십시오.
- 기본 선택 보기
- 이 옵션은 현재 레코드에 있는 모든 정보를 리턴하는 SQL SELECT 문을 포함하는 창을 표시합니다. 이 창의 컨텐츠를 강조표시하고 Ctrl+C를 눌러 이를 복사할 수 있습니다.
- 기본 선택 유효성 검증
- 이 옵션은 SELECT 문에 있는 정보를 참조된 SQL 데이터베이스의 구조와 비교하고 이러한 조회가 올바르게 작동할지 확인합니다.
암시 SQL문
암시 SQL문의 반대 개념은 임베디드 SQL문입니다. 여기에는 #sql 지시문으로 도입된 EGL I/O 명령문의 일부로 암시 SQL 코드를 포함시킬 수 있습니다. #sql 구문의 세부사항은 sql 지시문의 내용을 참조하십시오.
암시 SQL 코드에서 임베디드 SQL 코드로의 변환을 처리하려면 SQLRecord 스테레오타입의 레코드 파트를 기반으로 하는 레코드 변수를 참조하는 EGL I/O 명령문의 임의의 위치에서
마우스 오른쪽 단추를 클릭하십시오. 메뉴에서 SQL문을 선택하십시오. 이 절에 있는 예제에서는 모두 다음 레코드 파트를 사용합니다.
record CustomerRecord type SQLRecord
{tableNames = [["ADMINISTRATOR.CUSTOMER", "L1"]],
keyItems = [customerNumber]}
customerNumber STRING {column="C_NUMBER", maxLen=6};
customerName STRING {column="C_NAME", isSQLNullable=yes, maxLen=25};
customerAddr1 STRING {column="C_ADDR1", isSQLNullable=yes, maxLen=25};
customerAddr2 STRING {column="C_ADDR2", isSQLNullable=yes, maxLen=25};
customerAddr3 STRING {column="C_ADDR3", isSQLNullable=yes, maxLen=25};
customerBalance MONEY {column="C_BALANCE", isSQLNullable=yes};
end
SQL문 메뉴에서는 다음 옵션을 사용할 수 있습니다.
- 추가
- 이 옵션은 암시 SQL 코드를 임베디드 SQL 코드로 변환하고 이를 프로그램에 추가합니다. 추가 옵션은 단순 I/O 명령문 get myCustomer를 다음과 같이 변환합니다.
get myCustomer with #sql{ select C_NUMBER, C_NAME, C_ADDR1, C_ADDR2, C_ADDR3, C_BALANCE from ADMINISTRATOR.CUSTOMER L1 where C_NUMBER = :myCustomer.customerNumber }; - into를 사용한 추가
- 이 옵션은 추가와 동일하게 작동하지만 EGL 레코드 변수의 필드 이름에 대한 EGL into 절을 포함합니다. 이 옵션은 일부 필드만 업데이트하려는 경우 유용합니다.
into 및 select 절에서 업데이트하지 않을 필드 이름을 제외할 수 있습니다.
get myCustomer into myCustomer.customerNumber, myCustomer.customerName, myCustomer.customerAddr1, myCustomer.customerAddr2, myCustomer.customerAddr3, myCustomer.customerBalance with #sql{ select C_NUMBER, C_NAME, C_ADDR1, C_ADDR2, C_ADDR3, C_BALANCE from ADMINISTRATOR.CUSTOMER L1 where C_NUMBER = :myCustomer.customerNumber }; - 보기
- 이 옵션은 코드에 추가하지 않은 상태로 암시 SQL 코드를 표시합니다. 그러나 팝업 표시에서 코드를 강조표시하고 Ctrl+C를 눌러 이를 복사할 수는 있습니다. 보기 대화 상자에서는 SQL문에 대해 추가, into를 사용한 추가, 재설정 및 유효성 검증 옵션을 사용할 수도 있습니다.
- 유효성 검증
- 이 옵션은 암시 SQL 코드가 잘 작성되었으며 올바르게 작동할지 확인합니다.
- 제거
- 이 옵션은 임베디드 SQL 코드를 제거하고 원래 I/O 명령문으로 되돌립니다.
- 재설정
- EGL에서 프로그램에 추가한 임베디드 코드를 사용자가 편집한 경우 이 옵션은 모든 편집을 실행 취소하고 원래 임베디드 코드를 복원합니다.