Project

General

Profile

ds-test.p

Igor Skornyakov, 12/01/2022 04:25 AM

Download (2.55 KB)

 
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 TEMP-TABLE ttd NO-UNDO
8
  FIELD cE  AS CHARACTER
9
  FIELD cM  AS CHARACTER
10
  FIELD val AS CHARACTER
11
  INDEX idxE AS UNIQUE cE.
12

    
13
DEFINE DATASET ds FOR ttd
14
  DATA-RELATION r1 FOR ttd, ttd
15
    RELATION-FIELDS (cE, cM) RECURSIVE.
16

    
17
OUTPUT TO 'ds-test.txt'. 
18
CREATE tt. tt.cE = 'm0'. tt.val = '-m0'. 
19
CREATE tt. tt.cE = 'm1'. tt.cM = 'm0'. tt.val = 'm0-m1'. 
20
CREATE tt. tt.cE = 'm2'. tt.cM = 'm0'. tt.val = 'm0-m2'. 
21
CREATE tt. tt.cE = 'e1'. tt.cM = 'm1'. tt.val = 'm1-e1'. 
22
CREATE tt. tt.cE = 'e2'. tt.cM = 'm2'. tt.val = 'm2-22'.
23

    
24
DEFINE QUERY qtt FOR tt.
25

    
26
DEFINE DATA-SOURCE srctt FOR QUERY qtt tt KEYS(cE).
27
BUFFER ttd:ATTACH-DATA-SOURCE(DATA-SOURCE srctt:HANDLE).
28
QUERY qtt:QUERY-PREPARE("FOR EACH tt where tt.cE = 'e1'").
29

    
30
DATASET ds:FILL() NO-ERROR.
31
RUN show-error("after ds:FILL()").
32

    
33
BUFFER tt:DETACH-DATA-SOURCE(). 
34

    
35
DEF VAR dsh AS HANDLE NO-UNDO.
36
DEF VAR hds AS HANDLE NO-UNDO.
37
DEF VAR hServer AS HANDLE NO-UNDO.
38
DEF VAR lRet AS LOGICAL NO-UNDO.
39

    
40
dsh = DATASET ds:HANDLE.
41
lRet = dsh:WRITE-XMLSCHEMA('file', 'ds.xsd', TRUE,  'UTF-8', FALSE, FALSE).
42
MESSAGE 'dsh:WRITE-XMLSCHEMA' lRet.
43

    
44
lRet = dsh:WRITE-XML('file', 'ds.xml', TRUE,  'UTF-8', 'ds.xsd', FALSE, FALSE, ?, FALSE).
45
MESSAGE 'dsh:WRITE-XML' lRet.
46

    
47
lRet = dsh:WRITE-XML('file', 'ds.xml', TRUE,  'UTF-8', 'ds.xsd', FALSE, FALSE, ?, FALSE).
48
MESSAGE 'dsh:WRITE-XML' lRet.
49

    
50
lRet = TEMP-TABLE ttd:WRITE-XML('file', 'ttd.xml', TRUE,  'UTF-8', ?, FALSE, FALSE, ?, FALSE).
51
MESSAGE 'ttd:WRITE-XML' lRet.
52

    
53
CREATE DATASET hds.
54
lRet = hds:READ-XMLSCHEMA('file', 'ds.xsd', FALSE, ?, ?) NO-ERROR.
55
RUN show-error('hds:READ-XMLSCHEMA').
56
MESSAGE 'hds:READ-XMLSCHEMA' lRet.
57

    
58
lRet = hds:WRITE-XMLSCHEMA('file', 'hds.xsd', TRUE,  'UTF-8', FALSE, FALSE).
59
MESSAGE 'hds:WRITE-XMLSCHEMA' lRet.
60

    
61
lRet = hds:READ-XML('file', 'ds.xml', 'empty', 'hds.xsd', ?, ?, ?) NO-ERROR.
62
RUN show-error('hds:READ-XML').
63
MESSAGE 'hds:READ-XML' lRet.
64

    
65

    
66
OUTPUT CLOSE.
67

    
68
PROCEDURE show-error:
69
    DEF INPUT PARAM action AS CHAR.
70
    
71
    DEF VAR nmsg AS INTEGER NO-UNDO.
72
    MESSAGE "After" action ": error =" ERROR-STATUS:ERROR 
73
            "num-messages =" ERROR-STATUS:NUM-MESSAGES 
74
            "type =" ERROR-STATUS:TYPE 
75
            .
76
    IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
77
        DO nmsg = 1 TO ERROR-STATUS:NUM-MESSAGES:
78
          MESSAGE "***" ERROR-STATUS:GET-NUMBER(nmsg) ':' ERROR-STATUS:GET-MESSAGE(nmsg).
79
        END.
80
    END.                      
81
END.