수색…
소개
진행 ABL은 정적으로 입력됩니다. 변수는 선언되어야하고 런타임 중에 데이터 유형을 변경할 수 없습니다.
통사론
INT64 INITIAL -200 NO-UNDO로 변수를 정의하십시오. // -200으로 초기화 된 64 비트 정수
논리적 변경 불가능한 논리적 변경. // l이라는 논리 변수
VARIABLE (변종)은 대 / 소문자를 구분하지 않고 그대로 사용하십시오. // 대소 문자를 구분합니다 ( 'a'<> 'A').
DATE IN DATE INTIAL TODAY NO-UNDO. // 오늘 날짜로 설정된 날짜 변수.
문자 범위를 5 번 UNDO로 변경할 수 있습니다. // 길이가 5 인 문자 배열
INTEGER EXTENT NO-UNDO와 같이 변수를 정의하십시오. // 길이가 설정되지 않은 익스텐트
DEFINE VARIABLE b DATETIME LABEL "출발 시간". // 라벨이 붙은 변수
기본 변수 선언
/*
These variables are declared with `NO-UNDO`.
That states that no undo handling is wanted for this specific variable
in case of a transactional roll-back.
This should always be the default unless transactional control over
this variable is a requirement.
*/
/* Strings. A character longer than 32K should be a longchar */
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE cl AS LONGCHAR NO-UNDO.
/* Integers and decimals. INTEGER = 32 bit. INT64 = 64 bits */
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE j AS INT64 NO-UNDO.
DEFINE VARIABLE k AS DECIMAL NO-UNDO.
/* Date and datetimez. Unset variables have the unknown value ? */
DEFINE VARIABLE d AS DATE NO-UNDO.
DEFINE VARIABLE dt AS DATETIME NO-UNDO.
DEFINE VARIABLE dtz AS DATETIME-TZ NO-UNDO.
/* LOGICAL = Boolean data. True or false (or ?) */
DEFINE VARIABLE l AS LOGICAL NO-UNDO.
/* Rowids and recids are internal identifiers to database records */
DEFINE VARIABLE rid AS ROWID NO-UNDO.
DEFINE VARIABLE rec AS RECID NO-UNDO.
/* A handle is a handle to anything: a session, an on screen widget etc */
/* A Com-handle is used for ActiveX Com-automation */
DEFINE VARIABLE h AS HANDLE NO-UNDO.
DEFINE VARIABLE hc AS COM-HANDLE NO-UNDO.
/* A raw variable can contain any data. Binary, strings etc */
DEFINE VARIABLE rw AS RAW NO-UNDO.
/* A mempointer contains a sequence of bytes in memory. */
DEFINE VARIABLE m AS MEMPTR NO-UNDO.
배열 - 정의 및 액세스
진행은 1 차원 배열을 지원하지만 EXTENTS
라고합니다.
/* Define a character array with the length 5, and display it's length */
DEFINE VARIABLE a AS CHARACTER EXTENT 5 NO-UNDO.
DISPLAY EXTENT(a).
배열의 개별 위치는 "표준"C 스타일 대괄호를 사용하여 액세스됩니다. 그러나 색인은 1부터 시작합니다. 최대 크기는 28000입니다.
a[1] = "A".
a[2] = "B".
a[3] = "C".
a[4] = "D".
a[5] = "E".
DISPLAY a[5].
결과:
색인 0은 오류를 생성합니다.
DISPLAY a[0].
결과:
집합 길이가없는 불확정 배열을 정의 할 수도 있습니다. 길이 (범위)는 런타임에 설정할 수 있습니다. 그러나 단 한 번!
DEFINE VARIABLE a AS CHARACTER EXTENT NO-UNDO.
EXTENT(a) = 10.
EXTENT(a) = 1.
DEFINE VARIABLE
문에서 INITIAL
옵션을 사용하여 초기 값을 설정할 수 있습니다.
DEFINE VARIABLE a AS CHARACTER EXTENT 3 INITIAL ["one","two","three"] NO-UNDO.
/* Some statements (like DISPLAY) can handle a whole array: */
DISPLAY a.
결과:
모든 범위를 설정하지 않으면 나머지는 마지막 설정 값을 얻습니다.
DEFINE VARIABLE a AS CHARACTER EXTENT 10 INITIAL ["one","two","three"] NO-UNDO.
DISPLAY a.
결과:
LIKE 키워드 사용
LIKE
를 사용하면 다른 변수 나 데이터베이스 또는 임시 테이블의 필드에서 변수 정의를 기반으로 할 수 있습니다.
변수 LIKE
데이터베이스 필드를 정의하면 데이터베이스가 항상 연결되어야합니다. 이것은 항상 당신이 원하는 것이 아닐 수도 있습니다.
DEFINE VARIABLE i AS INTEGER NO-UNDO LABEL "Nr" FORMAT "99999".
/* Define a variable with the same properties as "i" */
DEFINE VARIABLE j LIKE i.
/* Define a variable based on Customer.Custnum from the sports2000 database but
override the label-definition */
DEFINE VARIABLE k LIKE Customer.Custnum LABEL "Client".