Progress
Internationalization Guide


Modifying Collation Tables

Modifying collation tables is somewhat different from modifying the other non-word-break character-processing tables. You must first dump the collation table, edit it, load the modified table, and rebuild the indexes.

Preliminary Considerations

Before you modify the database’s collation tables, check the DLC/prolang directory for region-specific data definition (.df) files. These are database collation files that can be loaded into an empty database. Progress provides a collection of data definition files, one of which might suit your collation needs. For example, the DLC/prolang/ger directory contains the German-specific data definition files ger850.df and ger8859.df.

To modify how Progress performs 4GL comparisons, start Progress against the database that contains collation tables you want, or use the -cpcoll startup parameter to point to the tables you want. However, -cpcoll can point only to tables that reside in the convmap.cp file. If the collation/code-page pair you want does not reside in convmap.cp, you can build your own collation table, as described in the “Editing the Collation Table” section of this chapter.

Dumping a Collation Table

To dump a collation table, follow these steps:

  1. In the Data Administration tool, choose Admin Dump Data and Definitions Collation. The Dump Collation Tables dialog box appears.
  2. Type a dump name in the Output File field (_tran.df is the default), then choose OK.
  3. Enter the name of the code page the file will be written out with.

The _tran.df file contains the collation table for your database. Figure 3–5 shows a sample _tran.df file.

UPDATE DATABASE "?"
  COLLATION-TRANSLATION-VERSION 1.0-16
  COLLATION-NAME "basic"
  INTERNAL-EXTERNAL-TRAN-TABLE 
  ?
  EXTERNAL-INTERNAL-TRAN-TABLE 
  ?
  CASE-INSENSITIVE-SORT 
  /*000-015*/  000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 
  /*016-031*/  016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 
  /*032-047*/  032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 
  /*048-063*/  048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 
  /*064-079*/  064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 
  /*080-095*/  080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 
  /*096-111*/  096 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 
  /*112-127*/  080 081 082 083 084 085 086 087 088 089 090 123 124 125 126 127 
  /*128-143*/  176 177 178 179 180 185 186 187 188 191 192 193 194 195 196 197 
  /*144-159*/  200 201 202 203 204 205 206 213 217 218 219 220 223 242 000 158 
  /*160-175*/  255 173 189 156 207 190 221 245 249 184 229 174 199 240 199 238 
  /*176-191*/  248 241 253 252 239 230 244 250 247 251 229 175 172 171 243 168 
  /*192-207*/  065 065 065 065 065 143 146 067 069 069 069 069 073 073 073 073 
  /*208-223*/  068 078 079 079 079 079 079 158 157 085 085 085 085 089 222 000 
  /*224-239*/  065 065 065 065 065 143 146 067 069 069 069 069 073 073 073 073 
  /*240-255*/  068 078 079 079 079 079 079 246 157 085 085 085 085 089 222 089 
  CASE-SENSITIVE-SORT 
  /*000-015*/  000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 
                                          . 
                                          . 
                                          . 
   
  /*240-255*/  208 110 111 111 111 228 111 246 155 117 117 117 117 121 231 121 
.
PSC
cpstream=ibm850
.
0000005361 

Figure 3–5: Sample _tran.df File

NOTE: The IBM850 code page that appears in the trailer of the sample _tran.df file in Figure 3–5 is not the code page name of the database. It is the code page that was used to write out the data definition (.df) file.

Editing the Collation Table

As you read this section, you can refer to Figure 3–3, which shows a Greek collation table.

To modify the CASE-INSENSITIVE-SORT and CASE-SENSITIVE-SORT tables, use your favorite text editor.

A collation table for a single-byte code page must provide 256 values in 16 rows of 16 cells. The number you provide for each cell is a three-digit decimal. A collation name cannot exceed 19 characters and can include the characters A–Z, a–z, 0–9, and the dash (-).

The keyword COLLATION tells Progress that the following table entry is for 4GL comparisons. The keyword CODEPAGE-NAME specifies the name of the code page that the collations are for. The keyword COLLATION-NAME specifies a name for the collation.

At run time, Progress searches the convmap.cp file (or an equivalent file) to locate the correct collation tables. As a key to these tables, Progress uses the collation name (specified by -cpcoll) and a code page name (specified by -cpinternal). The names specified for these parameters must match the names in the convmap.cp file. These names are case insensitive.

The keyword COLLATION-TRANSLATION-VERSION specifies a value that Progress uses internally. Progress Software Corporation recommends that you specify the value 1.1-16 for single-byte collations.

The CASE-INSENSITIVE-SORT and CASE-SENSITIVE-SORT tables are identical to those used for a database and operate the same way. You modify them in the same way. For information on how to modify these tables, see the "Modifying Collation Tables" section.

The ENDTABLE keyword tells Progress that the table is finished. The ENDCOLLATION keyword tells Progress that the collation entry is complete.

Loading the Modified Collation Table

To load the modified tables back into the database, follow these steps:

  1. In the Data Administration tool, choose Admin Load Data and Definitions Data Definitions (.df file). The Load Data Definitions dialog box appears.
  2. Type the name of the data definition file that you modified (the default name is _tran.df) in the Input File field, then choose OK.
Rebuilding the Indexes

The Data Administration tool loads the schema information into the database. Before the database can use these tables, you must run the rebuild the database’s indexes. To do so, run the PROUTIL utility with the IDXBUILD modifier.

NOTE: The database cannot be in use when you do this.

The syntax of the PROUTIL utility with the IDXBUILD qualifier is:

SYNTAX
proutil db-name -C idxbuild all 

For the complete syntax of the PROUTIL utility, see the Progress Database Administration Guide and Reference .

Modifying, Compiling, and Providing Access To the CONVMAP File

You must still:


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095