Project

General

Profile

ds-test.p

Igor Skornyakov, 12/07/2022 11:51 AM

Download (2.85 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
  NAMESPACE-URI "http://goldencode.com/testNamespace"
9
  NAMESPACE-PREFIX "fwdPrefix"
10
  FIELD cE  AS CHARACTER
11
  FIELD cM  AS CHARACTER
12
  FIELD val AS CHARACTER
13
  INDEX idxE AS UNIQUE cE.
14

    
15
DEFINE DATASET ds 
16
  NAMESPACE-URI "http://goldencode.com/testNamespace"
17
/*  NAMESPACE-PREFIX "fwdPrefix"*/
18
  FOR ttd
19
  DATA-RELATION r1 FOR ttd, ttd
20
    RELATION-FIELDS (cM, cE) RECURSIVE.
21

    
22
OUTPUT TO 'ds-test.txt'. 
23
CREATE tt. tt.cE = 'm0'. tt.val = '-m0'. 
24
CREATE tt. tt.cE = 'm1'. tt.cM = 'm0'. tt.val = 'm0-m1'. 
25
CREATE tt. tt.cE = 'm2'. tt.cM = 'm0'. tt.val = 'm0-m2'. 
26
CREATE tt. tt.cE = 'e1'. tt.cM = 'm1'. tt.val = 'm1-e1'. 
27
CREATE tt. tt.cE = 'e2'. tt.cM = 'm2'. tt.val = 'm2-22'.
28

    
29
DEFINE QUERY qtt FOR tt.
30

    
31
DEFINE DATA-SOURCE srctt FOR QUERY qtt tt KEYS(cE).
32
BUFFER ttd:ATTACH-DATA-SOURCE(DATA-SOURCE srctt:HANDLE).
33
QUERY qtt:QUERY-PREPARE("FOR EACH tt where tt.cE = 'e1'").
34

    
35
DATASET ds:FILL() NO-ERROR.
36
RUN show-error("after ds:FILL()").
37

    
38
BUFFER tt:DETACH-DATA-SOURCE(). 
39

    
40
DEF VAR dsh AS HANDLE NO-UNDO.
41
DEF VAR hds AS HANDLE NO-UNDO.
42
DEF VAR hServer AS HANDLE NO-UNDO.
43
DEF VAR lRet AS LOGICAL NO-UNDO.
44

    
45
lRet = TEMP-TABLE tt:WRITE-XMLSCHEMA('file', 'tt.xsd', TRUE,  'UTF-8', FALSE, FALSE).
46
MESSAGE 'tt:WRITE-XMLSCHEMA' lRet.
47

    
48
lRet = TEMP-TABLE tt:WRITE-XML('file', 'tt.xml', TRUE,  'UTF-8', ?, FALSE, FALSE, ?, FALSE).
49
MESSAGE 'tt:WRITE-XML' lRet.
50

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

    
54
dsh = DATASET ds:HANDLE.
55
lRet = dsh:WRITE-XMLSCHEMA('file', 'ds.xsd', TRUE,  'UTF-8', FALSE, FALSE).
56
MESSAGE 'dsh:WRITE-XMLSCHEMA' lRet.
57

    
58
lRet = dsh:WRITE-XML('file', 'ds.xml', TRUE,  'UTF-8', 'ds.xsd', FALSE, FALSE, ?, FALSE).
59
MESSAGE 'dsh:WRITE-XML' lRet.
60

    
61
CREATE DATASET hds.
62
lRet = hds:READ-XMLSCHEMA('file', 'ds.xsd', FALSE, ?, ?) NO-ERROR.
63
RUN show-error('hds:READ-XMLSCHEMA').
64
MESSAGE 'hds:READ-XMLSCHEMA' lRet.
65

    
66
lRet = hds:WRITE-XMLSCHEMA('file', 'hds.xsd', TRUE,  'UTF-8', FALSE, FALSE).
67
MESSAGE 'hds:WRITE-XMLSCHEMA' lRet.
68

    
69
lRet = hds:READ-XML('file', 'ds.xml', 'empty', 'hds.xsd', ?, ?, ?) NO-ERROR.
70
RUN show-error('hds:READ-XML').
71
MESSAGE 'hds:READ-XML' lRet.
72

    
73

    
74
OUTPUT CLOSE.
75

    
76
PROCEDURE show-error:
77
    DEF INPUT PARAM action AS CHAR.
78
    
79
    DEF VAR nmsg AS INTEGER NO-UNDO.
80
    MESSAGE "After" action ": error =" ERROR-STATUS:ERROR 
81
            "num-messages =" ERROR-STATUS:NUM-MESSAGES 
82
            "type =" ERROR-STATUS:TYPE 
83
            .
84
    IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
85
        DO nmsg = 1 TO ERROR-STATUS:NUM-MESSAGES:
86
          MESSAGE "***" ERROR-STATUS:GET-NUMBER(nmsg) ':' ERROR-STATUS:GET-MESSAGE(nmsg).
87
        END.
88
    END.                      
89
END.