Project

General

Profile

ask-1.p

source code #1 - Ovidiu Maxiniuc, 10/13/2026 07:13 PM

Download (4.14 KB)

 
1
DEFINE VARIABLE c AS INTEGER INIT 0.
2
FUNCTION func0 RETURNS CHAR ():
3
   c = c + 1.
4
   
5
   IF c EQ 1 THEN DO:
6
       MESSAGE "f0: 1250" c.
7
       RETURN      "1250".
8
   END. ELSE IF c EQ 2 THEN DO:
9
       MESSAGE "f0: iso8859-15" c.
10
       RETURN      "iso8859-15".
11
   END. ELSE IF c EQ 3 THEN DO:
12
       MESSAGE "f0: utf-16" c.
13
       RETURN      "utf-16".
14
   END. ELSE IF c EQ 4 THEN DO:
15
       MESSAGE "f0: roman-8" c.
16
       RETURN      "roman-8".
17
   END. ELSE IF c EQ 5 THEN DO:
18
       MESSAGE "f0: big-5" c.
19
       RETURN      "big-5".
20
   END. ELSE IF c EQ 4 THEN DO:
21
       MESSAGE "f0: gb18030" c.
22
       RETURN      "gb18030".
23
   END.
24
   
25
   MESSAGE "f0: ibm850" c.
26
   RETURN      "ibm850".
27
END.
28

    
29
FUNCTION printCPs RETURNS CHAR (INPUT buf AS HANDLE ):
30
   DEFINE VARIABLE ret AS CHAR.
31
   DEFINE VARIABLE cp AS CHAR.
32
   DEFINE VARIABLE i AS INT.
33

    
34
   buf:BUFFER-CREATE().
35
   ret = buf:NAME + ":". 
36
   
37
   DO WHILE TRUE:
38
      DEFINE VARIABLE fbh AS HANDLE.
39
      
40
      i = i + 1.
41
      fbh = buf:BUFFER-FIELD(i) NO-ERROR.
42
      IF fbh EQ ? THEN
43
         LEAVE.
44

    
45
      cp = GET-CODEPAGE(fbh:BUFFER-VALUE()) NO-ERROR.
46
      ret = ret + " " + (IF cp EQ ? THEN '?' ELSE cp).  
47
   END.
48
      
49
   MESSAGE ret.
50
END.
51

    
52
IF YES THEN RETURN ERROR.
53
MESSAGE "IF YES THEN RETURN ERROR.".
54

    
55
DEFINE NEW SHARED TEMP-TABLE tt01 NO-UNDO
56
   FIELD f01_0 AS   CHAR
57
   FIELD f01_1 AS   CLOB
58
   FIELD f01_2 AS   CLOB TTCODEPAGE
59
   FIELD f01_3 AS   CLOB COLUMN-CODEPAGE "utf-8"
60
   FIELD f01_4 LIKE book.clob-1250RO
61
   FIELD f01_5 LIKE book.clob-utf8basic
62
   FIELD f01_6 AS   CLOB COLUMN-CODEPAGE func0().
63
.
64
printCPs(BUFFER tt01:HANDLE).
65

    
66
DEFINE NEW SHARED TEMP-TABLE tt02 NO-UNDO
67
   FIELD f02_0  AS   CHAR
68
   FIELD f02_1  AS   CLOB
69
   FIELD f02_2  AS   CLOB TTCODEPAGE
70
   FIELD f02_3  AS   CLOB COLUMN-CODEPAGE "utf-8"
71
   FIELD f02_4  LIKE book.clob-1250RO
72
   FIELD f02_5  LIKE book.clob-utf8basic
73
   FIELD f02_6  LIKE tt01.f01_1
74
   FIELD f02_7  LIKE tt01.f01_2
75
   FIELD f02_8  LIKE tt01.f01_3
76
   FIELD f02_9  LIKE tt01.f01_4
77
   FIELD f02_10 LIKE tt01.f01_5
78
   FIELD f02_11 LIKE tt01.f01_6
79
.
80
printCPs(BUFFER tt02:HANDLE).
81

    
82
DEFINE NEW SHARED TEMP-TABLE tt03 LIKE tt02.
83
printCPs(BUFFER tt03:HANDLE).
84

    
85
DEFINE NEW SHARED TEMP-TABLE tt04 NO-UNDO
86
   FIELD f04_0  AS   CHAR
87
   FIELD f04_1  AS   CLOB
88
   FIELD f04_2  AS   CLOB TTCODEPAGE
89
   FIELD f04_3  AS   CLOB COLUMN-CODEPAGE "utf-8"
90
   FIELD f04_4  LIKE book.clob-1250RO
91
   FIELD f04_5  LIKE book.clob-utf8basic
92
   FIELD f04_6  LIKE tt02.f02_1
93
   FIELD f04_7  LIKE tt02.f02_2
94
   FIELD f04_8  LIKE tt02.f02_3
95
   FIELD f04_9  LIKE tt02.f02_4
96
   FIELD f04_10 LIKE tt02.f02_5
97
   FIELD f04_11 LIKE tt02.f02_11
98
   FIELD f04_12 LIKE tt01.f01_6
99
.
100
printCPs(BUFFER tt04:HANDLE).
101

    
102

    
103
DEFINE VARIABLE dtbh AS HANDLE.
104
DEFINE VARIABLE dbh AS HANDLE.
105
DEFINE VARIABLE dfbh1 AS HANDLE.
106
CREATE TEMP-TABLE dtbh.
107
MESSAGE dtbh:ADD-LIKE-FIELD("f1",  "tt02.f02_1")
108
        dtbh:ADD-LIKE-FIELD("f2",  "tt02.f02_2")
109
        dtbh:ADD-LIKE-FIELD("f3",  "tt02.f02_3")
110
        dtbh:ADD-LIKE-FIELD("f4",  "tt02.f02_4")
111
        dtbh:ADD-LIKE-FIELD("f5",  "tt02.f02_5")
112
        dtbh:ADD-LIKE-FIELD("f6",  "tt02.f02_6")
113
        dtbh:ADD-LIKE-FIELD("f7",  "tt02.f02_7")
114
        dtbh:ADD-LIKE-FIELD("f8",  "tt02.f02_8")
115
        dtbh:ADD-LIKE-FIELD("f9",  "tt02.f02_9")
116
        dtbh:ADD-LIKE-FIELD("f10", "tt02.f02_10")
117
        dtbh:ADD-LIKE-FIELD("f11", "tt02.f02_11")
118
        dtbh:ADD-LIKE-FIELD("f12", "book.clob-1250RO")
119
        dtbh:ADD-LIKE-FIELD("f13", "book.clob-utf8basic")
120
        dtbh:ADD-LIKE-FIELD("f14", "tt02.dfsdfsdf")     // Could not find source field dfsdfsdf during ADD-LIKE-FIELD. (9055)
121
        dtbh:ADD-LIKE-FIELD("f15", "book.dfsdfsdf")     // Could not find source field dfsdfsdf during ADD-LIKE-FIELD. (9055)
122
        dtbh:ADD-LIKE-FIELD("f16", "dfsdfsdf.dfsdfsdf") // Could not find table dfsdfsdf during ADD-LIKE-FIELD.  Table names must not be abbreviated. (9054)
123
        dtbh:TEMP-TABLE-PREPARE("dtt1")
124
     . // yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes
125

    
126
dbh = dtbh:DEFAULT-BUFFER-HANDLE.
127
dbh:BUFFER-CREATE().
128
printCPs(dbh).
129

    
130

    
131
CREATE TEMP-TABLE dtbh.
132
dtbh:CREATE-LIKE("tt02").
133
dtbh:TEMP-TABLE-PREPARE("dtt2").
134
dbh = dtbh:DEFAULT-BUFFER-HANDLE.
135
dbh:BUFFER-CREATE().
136
printCPs(dbh).
137

    
138

    
139
run ask-2.p.
140