ds-test.p
1 |
DEFINE TEMP-TABLE tt NO-UNDO |
---|---|
2 |
FIELD cE AS CHARACTER |
3 |
FIELD cM AS CHARACTER |
4 |
FIELD val AS CHARACTER |
5 |
INDEX idxE AS UNIQUE cE. |
6 |
|
7 |
DEFINE DATASET ds FOR tt |
8 |
DATA-RELATION r1 FOR tt, tt |
9 |
RELATION-FIELDS (cE, cM) RECURSIVE. |
10 |
|
11 |
OUTPUT TO 'ds-test.txt'. |
12 |
CREATE tt. tt.cE = 'm0'. tt.val = '-m0'. |
13 |
CREATE tt. tt.cE = 'm1'. tt.cM = 'm0'. tt.val = 'm0-m1'. |
14 |
CREATE tt. tt.cE = 'm2'. tt.cM = 'm0'. tt.val = 'm0-m2'. |
15 |
CREATE tt. tt.cE = 'e1'. tt.cM = 'm1'. tt.val = 'm1-e1'. |
16 |
CREATE tt. tt.cE = 'e2'. tt.cM = 'm2'. tt.val = 'm2-22'. |
17 |
|
18 |
DEFINE QUERY qtt1 FOR tt. |
19 |
|
20 |
DEFINE DATA-SOURCE srctt1 FOR QUERY qtt1 tt KEYS(cE). |
21 |
BUFFER tt:ATTACH-DATA-SOURCE(DATA-SOURCE srctt1:HANDLE). |
22 |
QUERY qtt1:QUERY-PREPARE("FOR EACH tt"). |
23 |
|
24 |
DATASET ds:FILL() NO-ERROR. |
25 |
RUN show-error("after ds:FILL()"). |
26 |
|
27 |
BUFFER tt:DETACH-DATA-SOURCE(). |
28 |
|
29 |
OUTPUT CLOSE. |
30 |
|
31 |
PROCEDURE show-error: |
32 |
DEF INPUT PARAM action AS CHAR. |
33 |
|
34 |
DEF VAR nmsg AS INTEGER NO-UNDO. |
35 |
MESSAGE "After" action ": error =" ERROR-STATUS:ERROR |
36 |
"num-messages =" ERROR-STATUS:NUM-MESSAGES |
37 |
"type =" ERROR-STATUS:TYPE |
38 |
. |
39 |
IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO: |
40 |
DO nmsg = 1 TO ERROR-STATUS:NUM-MESSAGES: |
41 |
MESSAGE "***" ERROR-STATUS:GET-NUMBER(nmsg) ':' ERROR-STATUS:GET-MESSAGE(nmsg). |
42 |
END. |
43 |
END. |
44 |
END. |