character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

7 Comments

  1. Have you tried to use a Translation Table for READ/WRITE of that particual entity?

    Just a guess of a not-so-popular uniface capability


    Author: ulrich-merkel (ulrichmerkel@web.de)
  2. Sorry if i´m wrong but is it not the same as using the mapping in the asn file?

    Regards,Rafa.


    Author: uniface8 (spanish_uniface@hotmail.es)
  3. No, it's in the helpfile as "Database Translation Tables"

    It uses the mechanism of the KTT or Printer Tables (leftmost column versus middle column) to specify the conversion pairs character by character.

    BUT: you have you have to maintain on each compoenent Properties the "Database Translation Table" for Read and Write

     

    To use translation tables during DBMS input and output:

    1. Specify the keyboard translation tables that will be used for read and write in your form-level definitions.
    2. Specify that database I/O translation is required. Do this in the field interface definition of individual fields.

    If you request translation for a field, Uniface scans the data for the field as it is retrieved. If Uniface encounters a source string from the specified table, it converts the source string to the target string before the data enters the external structure. The opposite operation occurs as the field is stored.


    Author: ulrich-merkel (ulrichmerkel@web.de)
  4. Hi, If possible, I wouldn't touch database translation tables. At least in Uniface7 you had to convert your search-words yourself, ie. the search-data isn't automatically handled by the database translation table. Regards RogerW.


    Author: rogerw (roger.wallin@abilita.fi)
  5. very good point, roger.

    In the context I faced this, it was a straight read-write situation.

    So as mr. hammer said: don't touch this


    Author: ulrich-merkel (ulrichmerkel@web.de)
  6. What is your NLS_CHARACTERSET in Oracle?


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  7. Hi all, we found a possible solution, it works changing the NLS_LANG in PC client.
    Thank you for your advices.

    Kind regards, Rafa.


    Author: uniface8 (spanish_uniface@hotmail.es)