Database Configuration for Unicode
Progress 9.1 (SQL-92)
The Progress database can be set to use the UTF-8 Unicode codepage. The SQL-92 Client can be also be set to use Unicode. The SQL-92 server uses the codepage of the connected database as its internal codepage. Conversion between the database codepage and the SQL-92 client codepage is done by the server. There are no specific functions provided for converting between codepages within an ESQL-92 program.
The easiest way to create to Progress Unicode-enabled database is to use the "proutil" program to convert an existing database to UTF-8 format using the following command:
proutil <db-name> -C convchar convert utf-8
Multibyte characters can be used in character (CHAR) and variable-length character (VARCHAR) fields.
Character string literals and the arguments to string functions can also be multibyte characters.
There are some provisos for specific functions noted in the Progress documentation.
- Importantly, when the SQL-92 language element syntax requires single quotes, double quotes, parentheses, or braces, the requirement is for the single-byte ASCII encoding of these characters and other encodings are not equivalent.
- The string operators in Progress SQL-92 consider the unit of length to be the character count, not a byte or column count.
- When a column of type CHAR or VARCHAR is created, the maximum length specified is a number of characters, so the actual number of bytes storage required depends on the database codepage.
The length of character data returned in the sqlda is in bytes, not characters.