Page 1 of 1

Direct mode and some characters

Posted: Tue 16 Nov 2010 12:24
by lancelotti
When I using Direct=true, Oracle doesn't understand some characters like — and “.

When I switch Direct=false it works.

I use BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1.

Thanks.

Posted: Wed 17 Nov 2010 12:40
by Shalex
Here is a chain of character conversions when using Oracle Client:
your database encoding (NLS_CHARACTERSET) ->
Oracle client encoding (e.g., HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0, the NLS_LANG key value) ->
the Encoding.Default value (it is equal to the regional settings of your machine) ->
.NET string (UTF16)
.

If you are using the Direct mode, the Oracle client encoding doesn't participate in character conversions. Probably there is some mismatch of database and client machine encodings in this case. Please try using the Unicode=true; connection string parameter to use unicode at transport level when Direct=true.

Posted: Thu 18 Nov 2010 12:47
by lancelotti
Shalex wrote: Please try using the Unicode=true; connection string parameter to use unicode at transport level when Direct=true.
I'd ever tried it before.

Posted: Mon 22 Nov 2010 09:59
by Shalex
Could you please specify in your answer more precisely if the Unicode=true; parameter had resolved the problem or not? If not, please send us:
1) a small test project with the DDL/DML script to reproduce the issue in our environment;
2) the exact version of your dotConnect for Oracle. You can find it in the Tools > Oracle > About menu of Visual Studio. Have you tried the latest (6.0.46) version?
3) the NLS settings of your database (NLS_CHARACTERSET, NLS_NCHAR_CHARACTERSET, NLS_LANGUAGE);
4) the regional settings of your machine: Control Panel > Reginal and Language Options > the "Standards and formats" drop-down value, Location, and Language for non-Unicode programs.