Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 916
  • Last Modified:

How to store Unicode in a database Firebird 1.5 with Delphi 6 components ?

Hello!

I begin a project which use unicode.
I have downloaded the "tntunicode" components to use unicode with delphi 6.
I have also a database firebird 1.5 for windows.
I create a table "PARAM" with 2 fields "ID_PARAM integer" and "LIB_PARAM varchar(100)".

When I tape some chinese characters on the component TntEdit of my application, I can see these characters.
When I click on a button, I store these characters in the database FireBird.
But when I try to recuperate this information from my table PARAM with the statement "select" and display it in a DBGrid, the information is not correctly displayed (the grid shows the characters "????" instead of my data).

Can someone help me solve this problem ?

thanks!
0
ryuken
Asked:
ryuken
  • 8
  • 8
  • 2
  • +2
1 Solution
 
kretzschmarCommented:
the dbgrid is not able to display unicode,
why not display it again in the tntedit?
0
 
ryukenAuthor Commented:
With the package TntUnicode Components, I have the TntDBGrid witch can display unicode characters.
0
 
kretzschmarCommented:
and u use TntDBGrid for display?
(just reasking, because in the initial-question you told about dbgrid)

meikl ;-)
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
ryukenAuthor Commented:
I have also test to display the unicode characters with a TntEdit.
But I have these characters '????' instead of chinese characters.

When I store the characters in the database, I can see '????' with the IBOConsole for FireBird.
And when I recuperate these characters with a statement "select" in a TntEdit or a TntDbGrid, I have the '????'.

Maybe, Delphi 6 modify my characters when I try to save them in the database ?
0
 
kretzschmarCommented:
what components do u use for the connection (ib..., bde)?
0
 
ryukenAuthor Commented:
I use the components of Delphi 6 :
 - SQLConnection1 of DBExpress
 - SQLQuery1 of DBExpress
 - DataSetProvider1 of AccessDB
 - ClientDataSet1 of AccessDB
0
 
kretzschmarCommented:
did you set the localeCode and the ServerCharset-parameters
of the sqlConnection?
0
 
ryukenAuthor Commented:
No I don't know how to set this information!
have you got a localeCode and a ServerCharset-parameters
for unicode ?
0
 
kretzschmarCommented:
following i have found,
did not know, which one you need

LocaleCode description
1028 Chinese (Taiwan)
2052 Chinese (China)
3076 Chinese (Hong Kong)
4100 Chinese (Singapore)
5124 Chinese (Macau)

searching now for serverCharset

meikl ;-)
0
 
kretzschmarCommented:
see following article

http://www.vitavoom.com/Products/pgExpress_Driver/docs/localization.html

(its for postgres with dbexpress-drivers, but should be adaptable)

meikl ;-)
0
 
ryukenAuthor Commented:
Sorry, I try to complete the params of the component SQLConnection1 with these values :
 - LocaleCode = 2052
 - ServerCharSet = UNICODE_FSS

But that don't work well.
I always display the characters '????' in the TntEdit or the TntDBGrid.
0
 
kretzschmarCommented:
try this change

- ServerCharSet = /UNICODE_FSS

maybe the server uses itself a different charset

meikl ;-)

0
 
ryukenAuthor Commented:
with ServerCharSet = /UNICODE_FSS , I have the error in Delphi 6 :
"CHARACTER SET /UNICODE_FSS is not defined"
0
 
kretzschmarCommented:
:-( digging in the dark

searching further . . .
0
 
ryukenAuthor Commented:
I will try to search on "www.ibphoenix.com" and "www.borland.com" for more information about unicode with Delphi.
0
 
mgazzaCommented:
i have also had a problem with unicode and delphi
i was writting a dll that excripts a normal string into other chars that look the same with the eye.

i input a word ($0062//b) id output from my dll $044A with looks like a b but when i try to show this information in an editbox i get the wrong chars and also when i save the raw word data to a file without formating humm computers dont like multibyte chars full stop!
0
 
bpanaCommented:
hi,

>> - SQLConnection1 of DBExpress
>> - SQLQuery1 of DBExpress
>> - DataSetProvider1 of AccessDB
>> - ClientDataSet1 of AccessDB

ClientDataSet doesn't support unicode, for the others I don't know, but I suppose that the problem cames from this.

I made it work with ADODataSet but this doesn't help you.

For the database Firebird 1.5 I don't know for sure, but you can try the Jedi Components, which are unicode (i've tested the jedi dataset and worked ok).
You can take a look on http://jvcl.sourceforge.net/

Bogdan.
0
 
ryukenAuthor Commented:
Hello,

I have download the Jedi Components for Delphi 6.
And I have found that there is some unicode functions that can help me.
Maybe the ClientDataSet can't support unicode characters.
0
 
bpanaCommented:
hi,

yes, as far as I know, the ClientDataSet doesn't support unicode

Bogdan
0
 
moduloCommented:
PAQed with points refunded (500)

modulo
Community Support Moderator
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 8
  • 8
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now