CREATE TABLE customers
(id NUMBER, name NVARCHAR2(50));
i use SqlQuery --provider--clientdataset
sqlconnection params: useUnicode=true
database have one record data
1001 '犇'
data can be correct display,
but i want to add data by client have problem?
example: input data in clientdataset,
id=1001, name='犇'
clientdataset.applyupdate(0);
ClientDateset.active := False;
ClientDateset.active := True;
the data be:
1001 ?
or
sqltxt := 'INSERT INTO customers VALUES (1002, ''犇'')';
SQLConnection1.ExecuteDirect(sqltxt);
the result is same:
1001 ?
dataBase information:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
NLS setting:
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CURRENCY $
4 NLS_ISO_CURRENCY AMERICA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE AMERICAN
9 NLS_CHARACTERSET ZHT16MSWIN950
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY $
16 NLS_NCHAR_CHARACTERSET AL16UTF16
17 NLS_COMP BINARY
18 NLS_LENGTH_SEMANTICS BYTE
19 NLS_NCHAR_CONV_EXCP FALSE
client NLS_Lang:TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
oracle9i NChar problem
Delphi version is: Delpphi 2009Plash wrote:Please specify your Delphi version.
Unicode characters in SQL is supported in Delphi 2009 only.
Unicode data in parameters should work with all Delphi versions. Please try to execute INSERT statement with a parameter using TSQLQuery. Set DataType of the parameter to ftWideString.
i use TSQLQuery and Set DataType of the parameter to ftWideString
SQLQuery1.Params[0].AsString := '犇';
SQLQuery1.ExecSQL();
the result is same the '犇' in database is ?
Please specify whether this problem occurs only with Direct mode connection (DevartOracleDirect driver).
Note that using the AsString property changes DataType of the parameter to ftString. Try to use Value instead:
Note that using the AsString property changes DataType of the parameter to ftString. Try to use Value instead:
Code: Select all
SQLQuery1.Params[0].Value := '犇';
I have try both mode, the result is the same!Plash wrote:Please specify whether this problem occurs only with Direct mode connection (DevartOracleDirect driver).
Note that using the AsString property changes DataType of the parameter to ftString. Try to use Value instead:Code: Select all
SQLQuery1.Params[0].Value := '犇';