EGL 소개(빠른 시작 안내서)를 완료하면 관계형 데이터베이스에 액세스하는 데 필요한 EGL 파트와 데이터베이스에서 데이터를 읽고 쓰는 데 사용할 수 있는 명령을 배우게 됩니다. 이 학습에서 해당 개념을 보다 자세히 다룹니다.
작성된 가장 중요한 데이터 파트는 SQLRecord 파트입니다. 이 레코드 파트의 필드는 데이터베이스의 열과 관련됩니다. 이 레코드를 기반으로 변수를 작성하면 해당 변수를 사용하여 데이터베이스에 신규 또는 기존 행을 나타낼 수 있습니다. 데이터 액세스 응용프로그램 마법사가 작성한 각 SQLRecord는 단일 테이블의 열과만 일치하지만 나중에 이 학습서에서 두 테이블 이상의 데이터를 단일 레코드로 병합하는 방법에 대해 설명할 것입니다(SQL에서는 테이블 결합이라고 함).
record Customer type sqlRecord {
tablenames=[["EGL.CUSTOMER"]],
keyItems=[CustomerId]
}
CustomerId CustomerId {column="EGL.CUSTOMER.CUSTOMER_ID"};
FirstName FirstName {column="EGL.CUSTOMER.FIRST_NAME",
sqlVariableLen=yes, maxLen=30, isSqlNullable=yes};
LastName LastName {column="EGL.CUSTOMER.LAST_NAME",
sqlVariableLen=yes, maxLen=30, isSqlNullable=yes};
...
Directions Directions {column="EGL.CUSTOMER.DIRECTIONS",
sqlVariableLen=yes, maxLen=255, isSqlNullable=yes};
end
tablenames=[["EGL.CUSTOMER"]] 코드는
이 레코드가 연관된 데이터베이스의 테이블을 지정하며 각 필드의 열 특성은
필드가 연관된 테이블의 열을 지정합니다. keyItems=[CustomerId] 코드는 CustomerId
필드와 데이터베이스의 EGL.CUSTOMER.CUSTOMER_ID 열(CustomerId와의 연결로 인해)이
이 테이블의 1차 키임을 나타냅니다. | EGL 명령 | EGL 예제 | SQL 명령 |
|---|---|---|
| add | add myRecord; |
INSERT |
| get | get myRecord; |
SELECT |
| replace | replace myRecord; |
UPDATE |
| delete | delete myRecord; |
DELETE |
add myCustomer;myCustomer 레코드에 커서를 두고 마우스 오른쪽 단추를 클릭한 다음 를 클릭하면 EGL 편집기가 add 문을 펼쳐 SQL 코드를 표시하며 SQL 코드가 명시적으로 표시됩니다.

add myCustomer with
#sql{
insert into EGL.CUSTOMER
(EGL.CUSTOMER.CUSTOMER_ID, EGL.CUSTOMER.FIRST_NAME,
EGL.CUSTOMER.LAST_NAME, EGL.CUSTOMER.PASSWORD,
EGL.CUSTOMER.PHONE, EGL.CUSTOMER.EMAIL_ADDRESS,
EGL.CUSTOMER.STREET, EGL.CUSTOMER.APARTMENT,
EGL.CUSTOMER.CITY, EGL.CUSTOMER."STATE",
EGL.CUSTOMER.POSTALCODE, EGL.CUSTOMER.DIRECTIONS)
values
(:myCustomer.CustomerId, :myCustomer.FirstName,
:myCustomer.LastName, :myCustomer.Password,
:myCustomer.Phone, :myCustomer.EmailAddress,
:myCustomer.Street, :myCustomer.Apartment,
:myCustomer.City, :myCustomer.State,
:myCustomer.Postalcode, :myCustomer.Directions)
};
내용은 변경되지 않습니다. EGL이 add 문에서
생성한 SQL 코드를 드러냈을 뿐입니다.
이제, 코드가 명시적이므로 EGL 명령에서 생성된 기본 SQL을
편집할 수 있습니다. SQL INSERT 문의 VALUES절은 새 데이터베이스 행(이 경우, myCustomer 레코드의 필드)에 삽입할 값을 나열합니다. #sql 블록의 각 값 앞에는 콜론(:)이 오는데, 이는 값이 SQL 값이 아니라 EGL 값임을 나타냅니다. 명시적 SQL 코드에 사용하는 이 EGL 값은 호스트 변수라고 합니다.
function getCustFromState(customerState CHAR(2) in,
customers Customer[] out)
get customers with
#sql{
select *
from EGL.CUSTOMER
where EGL.CUSTOMER."STATE" like :customerState
};
end
이 함수는 2바이트 CHAR 매개변수를 받은 다음
해당 매개변수를 호스트 변수로 사용하여 해당 두 문자에 일치하는
STATE 필드가 있는 레코드를 검색합니다. EGL이 명시적 SQL 코드와
작동할 수 있도록 하려면 호스트 변수를 주의하여 사용하십시오. 이 절에서는 get, add, replace 및 delete를 사용하여 EGL로 기본 데이터베이스 조작을 수행합니다. 이 절은 선택사항입니다. 네 개의 기본 EGL 데이터 액세스 명령문 및 해당 SQL 대응 명령에 익숙하다면 이 절을 건너뛰십시오.