I find a error for oracle in Direct Mode about nvarchar2
I find a error for oracle in Direct Mode about nvarchar2
Hello.
I like use UniDAC.
I have use UniDAC make a oracle tools.
But just now, I find a bug for oracle in Direct Mode about nvarchar2
the Chinese can not show completely.
My UniConnection Set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.UseUnicode=True'
'Oracle.Direct=True')
Options.DisconnectedMode = True
LoginPrompt = False
Left = 168
Top = 128
end
Or:
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True')
Options.DisconnectedMode = True
LoginPrompt = False
Left = 168
Top = 128
end
they all can't show completely.
I use TOAD , it has Direct mode too.
It test it ,it has no this error.
I hope this is not a bug.
perhaps my TUniConnection or TUniQuery Set is not right.
if my set is not right .please how can i set it.
I like use UniDAC.
I have use UniDAC make a oracle tools.
But just now, I find a bug for oracle in Direct Mode about nvarchar2
the Chinese can not show completely.
My UniConnection Set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.UseUnicode=True'
'Oracle.Direct=True')
Options.DisconnectedMode = True
LoginPrompt = False
Left = 168
Top = 128
end
Or:
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True')
Options.DisconnectedMode = True
LoginPrompt = False
Left = 168
Top = 128
end
they all can't show completely.
I use TOAD , it has Direct mode too.
It test it ,it has no this error.
I hope this is not a bug.
perhaps my TUniConnection or TUniQuery Set is not right.
if my set is not right .please how can i set it.
I am sorry!
i have solved it.
My set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True'
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True')
Options.DisconnectedMode = True
Username = 'OK3PL'
Password = 'OK3PL'
Server = '192.168.1.139:1521:OKADB'
LoginPrompt = False
Left = 168
Top = 128
end
in fact, we must add :
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True'
we can get Oracle.Charset from the registry in the client computer.
i have solved it.
My set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True'
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True')
Options.DisconnectedMode = True
Username = 'OK3PL'
Password = 'OK3PL'
Server = '192.168.1.139:1521:OKADB'
LoginPrompt = False
Left = 168
Top = 128
end
in fact, we must add :
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True'
we can get Oracle.Charset from the registry in the client computer.
I am sorry!
i have solved it.
My set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True'
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True')
Options.DisconnectedMode = True
Username = 'OK3PL'
Password = 'OK3PL'
Server = '192.168.1.139:1521:OKADB'
LoginPrompt = False
Left = 168
Top = 128
end
in fact, we must add :
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True'
we can get Oracle.Charset from the registry in the client computer.
i have solved it.
My set is :
object oraSession: TUniConnection
ProviderName = 'Oracle'
SpecificOptions.Strings = (
'Oracle.Direct=True'
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True')
Options.DisconnectedMode = True
Username = 'OK3PL'
Password = 'OK3PL'
Server = '192.168.1.139:1521:OKADB'
LoginPrompt = False
Left = 168
Top = 128
end
in fact, we must add :
'Oracle.Charset=ZHS16GBK'
'Oracle.UseUnicode=True'
we can get Oracle.Charset from the registry in the client computer.
Now I find a new question.
when Set TUniConnection :'Oracle.UseUnicode=True'
I find that the Sql can not be parse accurately sometimes;
for example:
when i execute:
SELECT
MDL_ID,--1模块ID
MDL_CD--2模块I
FROM
T_SYS_MDL
the message is:ORA-01742: comment not terminated properly
But When i set "MDL_CD--2模块I " instead of "MDL_CD--2模块I"
(only add a blank space ) ,
It can be execute accurately!
so I can not user 'Oracle.UseUnicode=True'!
when Set TUniConnection :'Oracle.UseUnicode=True'
I find that the Sql can not be parse accurately sometimes;
for example:
when i execute:
SELECT
MDL_ID,--1模块ID
MDL_CD--2模块I
FROM
T_SYS_MDL
the message is:ORA-01742: comment not terminated properly
But When i set "MDL_CD--2模块I " instead of "MDL_CD--2模块I"
(only add a blank space ) ,
It can be execute accurately!
so I can not user 'Oracle.UseUnicode=True'!
I know this had be fixed at UniDac3.00.0.06
but now ,i find in UniDac3.00.0.09,UniDac3.00.0.10 ,this bug shows too .
if we set:Uniconn.SpecificOptions.Add('Oracle.UseUniCode=True');
it can shows chinese ok;
but if set 'Oracle.UseUniCode=False', it shows nvarchar2 chinese error;
i like use 'Oracle.UseUniCode=False'.
but now ,i find in UniDac3.00.0.09,UniDac3.00.0.10 ,this bug shows too .
if we set:Uniconn.SpecificOptions.Add('Oracle.UseUniCode=True');
it can shows chinese ok;
but if set 'Oracle.UseUniCode=False', it shows nvarchar2 chinese error;
i like use 'Oracle.UseUniCode=False'.