Length problem with unicode surrogate pairs
Length problem with unicode surrogate pairs
Hello,
I have the following problem with the Tsimpledataset component
using the dbexpress components in delphi 2009.
I use an oracle 10g Database using the AL32UTF8 character set, which gave us full unicode support.
1)
For example in the database
CREATE TABLE TEST
(
ID NUMBER,
NAME_40B VARCHAR2(40 BYTE),
NAME_10C VARCHAR2(10 CHAR)
)
2) Enter 10 Unicode Supplementary characters (surrogate pairs) from unicode page 2 in column NAME_40B;
3) Execute statement Update Test set name_10C = name_40B;
The Component Tsimpledataset used for a TDBGrid delivers now 10 characters for name_40b and only 5 characters for name_10c.
This is wrong.
The same problematic appears using TOraQuery from your ODAC components.
Only the Delphi2009 build in dbexpress components, which we will not use shows the correct result here.
We need a solution urgent.
Regards
I have the following problem with the Tsimpledataset component
using the dbexpress components in delphi 2009.
I use an oracle 10g Database using the AL32UTF8 character set, which gave us full unicode support.
1)
For example in the database
CREATE TABLE TEST
(
ID NUMBER,
NAME_40B VARCHAR2(40 BYTE),
NAME_10C VARCHAR2(10 CHAR)
)
2) Enter 10 Unicode Supplementary characters (surrogate pairs) from unicode page 2 in column NAME_40B;
3) Execute statement Update Test set name_10C = name_40B;
The Component Tsimpledataset used for a TDBGrid delivers now 10 characters for name_40b and only 5 characters for name_10c.
This is wrong.
The same problematic appears using TOraQuery from your ODAC components.
Only the Delphi2009 build in dbexpress components, which we will not use shows the correct result here.
We need a solution urgent.
Regards
Unfortunately I cannot reproduce your issue. I need additional information to do it:
- I need to know all parameter values for your TSQLConnection
- I need to know all parameter values for your TSQLQuery
- I need Unicode text that you are inserting into the database
- I need the SQL query or Delphi code that you are using for inserting your Unicode text into the database
- I need the SQL query or Delphi code that you are using to copy Unicode text from the NAME_40B field to the NAME_10C field
- I need the SQL query that selects data from table for showing it in a DB grid
To fix this issue quickly you can send us a simple example that reproduces this issue by E-mail and perform the following steps:
1. Create a table in the database
2. Insert Unicode text into this table
3. Copy this Unicode text from the NAME_40B field to the NAME_10C field
4. Show the result in a DB grid
- I need to know all parameter values for your TSQLConnection
- I need to know all parameter values for your TSQLQuery
- I need Unicode text that you are inserting into the database
- I need the SQL query or Delphi code that you are using for inserting your Unicode text into the database
- I need the SQL query or Delphi code that you are using to copy Unicode text from the NAME_40B field to the NAME_10C field
- I need the SQL query that selects data from table for showing it in a DB grid
To fix this issue quickly you can send us a simple example that reproduces this issue by E-mail and perform the following steps:
1. Create a table in the database
2. Insert Unicode text into this table
3. Copy this Unicode text from the NAME_40B field to the NAME_10C field
4. Show the result in a DB grid
Point 1 to 3 are simply done with the tool Toad in nthe newest vesion 10.5.., using the sql editor.
The tool toad also shows the same wrong behavior in the data grids, but i still have no answere from quest soft.
With the length and lengthb function it is possible to query the length
of the fields and you can see that the length's are identical but the display
of the data differs.
Only Point 4 is done with the test program.
Can you give me an email adress, than i can sent you some screenshots,
also the required settings and an example program.
regards
The tool toad also shows the same wrong behavior in the data grids, but i still have no answere from quest soft.
With the length and lengthb function it is possible to query the length
of the fields and you can see that the length's are identical but the display
of the data differs.
Only Point 4 is done with the test program.
Can you give me an email adress, than i can sent you some screenshots,
also the required settings and an example program.
regards
The problem is that third-party utilities like Toad or any other can insert invalid data to the table. And when you try to show this data with the Devart dbExpress driver it will be very hard to determine where the error is: invalid data was stored to database or our dbExpress driver read data incorrectly. Therefore I ask you to perform all four steps in the sample application.
You can send sample application to the E-mail: [email protected]
You can send sample application to the E-mail: [email protected]
Regarding this topic:
On Jun 21. we have sent you an example program and some screenshorts to your email adress "[email protected]".
Until now we do not receive any kind of answer.
On Jun 21. we have sent you an example program and some screenshorts to your email adress "[email protected]".
Until now we do not receive any kind of answer.
Hello
I checked all E-mails that we got since the 21st of June and I could not find you E-mail. It seems like spam filter or firewall blocked your E-mail. Please send it to us again. But before sending please archive your sample with password and write this password to the same E-mail. Usually it is the best way to send and receive E-mail through spam filters and firewalls. And if I don't confirm receiving this E-mail during 24 hours please notify us at the forum again.
I checked all E-mails that we got since the 21st of June and I could not find you E-mail. It seems like spam filter or firewall blocked your E-mail. Please send it to us again. But before sending please archive your sample with password and write this password to the same E-mail. Usually it is the best way to send and receive E-mail through spam filters and firewalls. And if I don't confirm receiving this E-mail during 24 hours please notify us at the forum again.