FUNCTION printCPs RETURNS CHAR (INPUT buf AS HANDLE):
   DEFINE VARIABLE ret AS CHAR.
   DEFINE VARIABLE cp AS CHAR.
   DEFINE VARIABLE i AS INT.

   buf:BUFFER-CREATE().
   ret = buf:NAME + ":". 
   
   DO WHILE TRUE:
      DEFINE VARIABLE fbh AS HANDLE.
      
      i = i + 1.
      fbh = buf:BUFFER-FIELD(i) NO-ERROR.
      IF fbh EQ ? THEN
         LEAVE.

      cp = GET-CODEPAGE(fbh:BUFFER-VALUE()) NO-ERROR.
      ret = ret + " " + (IF cp EQ ? THEN '?' ELSE cp).  
   END.
      
   MESSAGE ret.
END.

DEFINE SHARED TEMP-TABLE tt01 NO-UNDO
   FIELD f01_0 AS   CHAR
   FIELD f01_1 AS   CLOB
   FIELD f01_2 AS   CLOB TTCODEPAGE
   FIELD f01_3 AS   CLOB COLUMN-CODEPAGE "utf-32LE"
   FIELD f01_4 LIKE book.clob-1250RO
   FIELD f01_5 LIKE book.clob-utf8basic
   FIELD f01_6 AS   CLOB COLUMN-CODEPAGE "utf-32BE".
.
printCPs(BUFFER tt01:HANDLE).

DEFINE SHARED TEMP-TABLE tt02 NO-UNDO
   FIELD f02_0  AS   CHAR
   FIELD f02_1  AS   CLOB
   FIELD f02_2  AS   CLOB TTCODEPAGE
   FIELD f02_3  AS   CLOB COLUMN-CODEPAGE "utf-8"
   FIELD f02_4  LIKE book.clob-1250RO
   FIELD f02_5  LIKE book.clob-utf8basic
   FIELD f02_6  LIKE tt01.f01_1
   FIELD f02_7  LIKE tt01.f01_2
   FIELD f02_8  LIKE tt01.f01_3
   FIELD f02_9  LIKE tt01.f01_4
   FIELD f02_10 LIKE tt01.f01_5
   FIELD f02_11 LIKE tt01.f01_6
.
printCPs(BUFFER tt02:HANDLE).

DEFINE SHARED TEMP-TABLE tt03 LIKE tt02.
printCPs(BUFFER tt03:HANDLE).

DEFINE SHARED TEMP-TABLE tt04 NO-UNDO
   FIELD f04_0  AS   CHAR
   FIELD f04_1  AS   CLOB
   FIELD f04_2  AS   CLOB TTCODEPAGE
   FIELD f04_3  AS   CLOB COLUMN-CODEPAGE "utf-8"
   FIELD f04_4  LIKE book.clob-1250RO
   FIELD f04_5  LIKE book.clob-utf8basic
   FIELD f04_6  LIKE tt02.f02_1
   FIELD f04_7  LIKE tt02.f02_2
   FIELD f04_8  LIKE tt02.f02_3
   FIELD f04_9  LIKE tt02.f02_4
   FIELD f04_10 LIKE tt02.f02_5
   FIELD f04_11 LIKE tt02.f02_11
   FIELD f04_12 LIKE tt01.f01_6
.
printCPs(BUFFER tt04:HANDLE).

DEFINE VARIABLE dtbh AS HANDLE.
DEFINE VARIABLE dbh AS HANDLE.
DEFINE VARIABLE dfbh1 AS HANDLE.
CREATE TEMP-TABLE dtbh.
MESSAGE dtbh:ADD-LIKE-FIELD("f1",  "tt02.f02_1")
        dtbh:ADD-LIKE-FIELD("f2",  "tt02.f02_2")
        dtbh:ADD-LIKE-FIELD("f3",  "tt02.f02_3")
        dtbh:ADD-LIKE-FIELD("f4",  "tt02.f02_4")
        dtbh:ADD-LIKE-FIELD("f5",  "tt02.f02_5")
        dtbh:ADD-LIKE-FIELD("f6",  "tt02.f02_6")
        dtbh:ADD-LIKE-FIELD("f7",  "tt02.f02_7")
        dtbh:ADD-LIKE-FIELD("f8",  "tt02.f02_8")
        dtbh:ADD-LIKE-FIELD("f9",  "tt02.f02_9")
        dtbh:ADD-LIKE-FIELD("f10", "tt02.f02_10")
        dtbh:ADD-LIKE-FIELD("f11", "tt02.f02_11")
        dtbh:ADD-LIKE-FIELD("f12", "book.clob-1250RO")
        dtbh:ADD-LIKE-FIELD("f13", "book.clob-utf8basic")
        dtbh:ADD-LIKE-FIELD("f14", "tt02.dfsdfsdf")     // Could not find source field dfsdfsdf during ADD-LIKE-FIELD. (9055)
        dtbh:ADD-LIKE-FIELD("f15", "book.dfsdfsdf")     // Could not find source field dfsdfsdf during ADD-LIKE-FIELD. (9055)
        dtbh:ADD-LIKE-FIELD("f16", "dfsdfsdf.dfsdfsdf") // Could not find table dfsdfsdf during ADD-LIKE-FIELD.  Table names must not be abbreviated. (9054)
        dtbh:TEMP-TABLE-PREPARE("dtt1")
     . // yes yes yes yes yes yes yes yes yes yes yes yes yes no no no yes

dbh = dtbh:DEFAULT-BUFFER-HANDLE.
dbh:BUFFER-CREATE().
printCPs(dbh).


CREATE TEMP-TABLE dtbh.
dtbh:CREATE-LIKE("tt02").
dtbh:TEMP-TABLE-PREPARE("dtt2").
dbh = dtbh:DEFAULT-BUFFER-HANDLE.
dbh:BUFFER-CREATE().
printCPs(dbh).
