Direct mode and some characters

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
lancelotti
Posts: 16
Joined: Tue 23 Feb 2010 18:28

Direct mode and some characters

Post by lancelotti » Tue 16 Nov 2010 12:24

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.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Wed 17 Nov 2010 12:40

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.

lancelotti
Posts: 16
Joined: Tue 23 Feb 2010 18:28

Post by lancelotti » Thu 18 Nov 2010 12:47

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.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 22 Nov 2010 09:59

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.

Post Reply