eppesuiG
9th November 2007, 10:59
Hi,
I already described this problem in "Tools development" forum, but probably this is a better place for this kind of questions.

I guess there is a problem with charset encoding since I keep having this error message when I try to insert a new value to a string field. The new value include a letter "è" that is stored as a two byte in our oracle database setup with utf-8 encoding.

This message is correctly stored in oracle, and I can query it with sqlplus in both NLS_LANG=american_america.we8iso88591 and NLS_LANG=american_america.utf-8. sqlplus convert the value according to my "ALTER SESSION SET NLS_LANGUAGE=..." statement.

When running the session in baan, I get the following error logged:
Log message called from view/port.8.4a.01/vobs/tt/lib/dbc/c_dd_chk.c: #105 keyword: Check dd
Pid 27228 Uid 145 Euid 145 Gid 125 Egid 125 Pset diego@DAKKAR2:6700
user_type S language 6 user_name info004 tty ote locale ISO88591/NULL
session: "tinpr0220m000";object: "tinpr0220m000"; company number: 200
Errno 0 bdb_errno 0
Log_mesg: tinpr020.rjcerror not according to NOHI (value 'Non Ã"possibile processare record con stato "Completato" o successivo')

Log message called from view/port.8.4a.01/vobs/tt/lib/dbc/c_dd_chk.c: #105 keyword: Check dd
Pid 27228 Uid 145 Euid 145 Gid 125 Egid 125 Pset diego@DAKKAR2:6700
user_type S language 6 user_name info004 tty ote locale ISO88591/NULL
session: "tinpr0220m000";object: "tinpr0220m000"; company number: 200
Errno 0 bdb_errno 205 (Out of range)
Log_mesg: Error 205 (Out of range) on tinpr020200 in db_update(51)
The error message is written when calling db.update on tinpr020 as shown here:
db.retry.point()

select tinpr020.*
from tinpr020 for update
where tinpr020._index2 = {0}

selectdo
ret.string = form.text$( "tinpr.0002", language$)
tinpr020.rjcerror = ret.string

|a few lines of code ...

db.update( ttinpr020, db.retry)
commit.transaction()
Any suggestion?

Thanks a lot

dave_23
12th November 2007, 17:50
Well.. Main problem is that baan doesn't have a TSS encoding for UTF8
as it's not a supported character set.

in your db_resource file have you set your nls_lang: to anything?
if you set it to
nls_lang:american_america.we8iso8859p1

it might make the errors go away since baan will just use that character set.
And Oracle should be ok with it since we8 is a subset of utf8.
BUT if you try to encode something that's in utf8 and not in we8 from
an extenrnal program, baan won't be able to read it.

Dave

eppesuiG
12th November 2007, 18:04
We have nls_lang:american_america.al32utf8 in db_resource file, so this means that baan tell oracle that he is able to manage utf-8 characters.

I think you are right: I know baanIV isn't able to manage utf8, while I though baan LN was improved. I'll switch db_resource to we8iso88591 and will hopefully get everything working.

I will post here again after I try this change.

Thanks,
Giuseppe

eppesuiG
12th November 2007, 19:16
Hi dave_23,
when I change nls_lang in db_resource I get a brand new error that I never saw before:

2007-11-12[18:55:50(UTC-01:00)]:E:inf004: ******* S T A R T of Error message *******
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Log message called from /view/port.8.4a.01/vobs/tt/servers/ORACLE_2/ora_native.c: #2258 keyword: Oracl
e NLS configuration
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Pid 27173 Uid 145 Euid 145 Gid 125 Egid 125 Pset diego@DAKKAR2:8108
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: user_type S language 6 user_name inf004 tty ote locale ISO88591/NULL
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Errno 25 (Not a typewriter) bdb_errno 0
2007-11-12[18:55:50(UTC-01:00)]:E:inf004:
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: dbs_errno = 0, Error 402 occurred:
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Incompatible NLS Characterset settings:
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Client: NLS_LANG = 'american_america.WE8ISO8859P15' --> characterset 'WE8ISO8859P15'
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Server: NLS_CHARACTERSET = 'AL32UTF8'
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Logon failed; errno 402
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: Flushed at /view/port.8.4a.01/vobs/tt/servers/ORACLE_2/ora_driver.c : #267.
2007-11-12[18:55:50(UTC-01:00)]:E:inf004: ******* E N D of Error message *******

so, it seems that once configured oracle with charset AL32UTF8, than you cannot use baan in latin9 (iso8859p15) nor utf8 (iso8859p1).

Any suggestions about this?

Thanks,
Giuseppe

dave_23
12th November 2007, 19:30
Bah, they put in a check for that..

So only way to fix it in my opinion is to convert your database character set to we8iso8859X.

Dave