Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem with Euro € Simbol in IDS 11

90 views
Skip to first unread message

NuevaEra

unread,
Aug 18, 2009, 10:59:01 AM8/18/09
to
Hello,
I migrate from Informix 7 to IDS 11.10.0000 FC2.

When i try to insert o show (old data) with characters special,
example €,italian caracters, we receive a run time error:

Run time error '40002':
S100:[Informix][Informix ODBC Driver]Unspecified System Error =
-21005.

We store data in diferents languages Spanish, Portuguese,
English,Italian, German and French.


ODBC : IBM Informix ODBC Driver Setup Utility 3.00.0000 3.00.TC3
SERVER : AIX 5
IDS :11.10.0000 FC2.
Clients :Windows XP access to server using ODBC ->DSN

What i need to do?

Any help will be aprecciated.

Abelardo

Fernando Nunes

unread,
Aug 18, 2009, 6:13:03 PM8/18/09
to
NuevaEra wrote:
> Hello,
> I migrate from Informix 7 to IDS 11.10.0000 FC2.
>
> When i try to insert o show (old data) with characters special,
> example �,italian caracters, we receive a run time error:

>
> Run time error '40002':
> S100:[Informix][Informix ODBC Driver]Unspecified System Error =
> -21005.
>
> We store data in diferents languages Spanish, Portuguese,
> English,Italian, German and French.
>
>
> ODBC : IBM Informix ODBC Driver Setup Utility 3.00.0000 3.00.TC3
> SERVER : AIX 5
> IDS :11.10.0000 FC2.
> Clients :Windows XP access to server using ODBC ->DSN
>
> What i need to do?
>
> Any help will be aprecciated.
>
> Abelardo

This is a relatively complex issue. There are posts about it and Guy
Bowerman has a blog entry about it too... Let's see...

You must check the database codeset. If you're using the default, it
will be en_us.819 which uses iso-8859-1. And this codeset does not have
� sign. Then you need to check the settings of your DSN. Specifically
the DB_LOCALE and CLIENT_LOCALE. Since the clients are on windows it
should be CLIENT_LOCALE=en_us.CP1252 and DB_LOCALE is the same of the
database.

Previous IDS and CSDK versions allowed for something that was wrong:
You could have your database locale with en_us.819, and your
CLIENT_LOCALE=DB_LOCALE=en_us.CP1252.
This would mean that the client would not do any codeset convertion. The
characters were inserted into the database with codeset CP1252 although
the database could be using iso-8859-1.
That was a mess, but it worked as long as the client didn't change.

Recent versions of CSDK (since around 2.90.TC6 if I recall correctly)
are smart enough to figure out the correct DB_LOCALE to use. So they
started doing codeset convertion and that can't happen if your
characters don't exist in iso-8859-1... Aditionally recent engine
versions (9.40.xC?, 10, 11 and 11.50) will not accept connections if the
client DB_LOCALE doesn't match the database locale.... There is a
variable that allows to revert to the old behavior, but I wouldn't
recommend it's use...

Solutions? Well... You should have your databases created with the
codeset that you need to store the characters you use... In your case
this could be CP1252... But if they're currently created with iso-8859-1
you'd have to export/import them...

Regards.

0 new messages