Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BDE -Oracle Langdriver problem

172 views
Skip to first unread message

Frans

unread,
Aug 5, 1998, 3:00:00 AM8/5/98
to
Hi there,

Im connecting to an ORACLE 7.3 database with the BDE (and SQL-net).
That's going fine but i'm having a problem with signs like 'ë' which
shows as 'k'. Is it a langdriver setting. if so what langdriver should i
use? or could it be a setting of SQL-net

thanks a lot for your help.

in reply's (preferably via e-mail) remove NOSPAM from the adress

Nicolas Bronke

unread,
Aug 7, 1998, 3:00:00 AM8/7/98
to
Look at following things:
- correct oracle character set
- correct BDE character set

in Germany it could be

- GERMAN_GERMANY.WE8ISO8859P1
- PDOX ANSI INTL

regards
Nicolas

Frans schrieb in Nachricht <35C842...@som.nlNOSPAM>...

Meszaros Dezso

unread,
Aug 15, 1998, 3:00:00 AM8/15/98
to Nicolas Bronke
We have the same problem in Hungary too, but the answare is a little bit
more complicated then Nicolas Bronke said. The correct answare "IMHO" is the
folowing:
In Oracle there are differant areas of National Language Settings (NLS)
- 1., The Database storage itself - look at the synonim/view
NLS_DATABASE_PARAMETERS
- 2., The running Oracle RDBMS - named "instance" at Oracle Corp.
look at the synonim/view NLS_INSTANCE_PARAMETERS
- 3., A connection from a client machine - named "session" at Oracle Corp.
look at the synonim/view NLS_SESSION_PARAMETERS
For example the server runs on DEC Unix which have the own character
settings and the client is connecting from a MAC which is another type of
architecture.

The Details:
Areas can modified in special places:
1., connecting at the context of SYS user you can modify a special "hidden"
table named PROPS$.
Here is a sample SQL script how to set it : (It is tuned for Hungarian
environment)
- UPDATE SYS.PROPS$ SET VALUE$='HUNGARIAN' WHERE NAME='NLS_LANGUAGE';
- UPDATE SYS.PROPS$ SET VALUE$='HUNGARY' WHERE NAME='NLS_TERRITORY';
- UPDATE SYS.PROPS$ SET VALUE$='Ft' WHERE NAME='NLS_CURRENCY';
- UPDATE SYS.PROPS$ SET VALUE$='HUNGARY' WHERE NAME='NLS_ISO_CURRENCY';
- UPDATE SYS.PROPS$ SET VALUE$='. ' WHERE NAME='NLS_NUMERIC_CHARACTERS';
- UPDATE SYS.PROPS$ SET VALUE$='YYYY.MM.DD' WHERE NAME='NLS_DATE_FORMAT';
- UPDATE SYS.PROPS$ SET VALUE$='HUNGARIAN' WHERE NAME='NLS_DATE_LANGUAGE';
- UPDATE SYS.PROPS$ SET VALUE$='HUNGARIAN' WHERE NAME='NLS_SORT';

COMMIT;

2., To modify the Instance parameter you should modify the Oracle
startup parameter file usually named initorcl.ora or initXXXX.ora
where XXXX is an Oracle "SID".
You can append this at the end of the file : (It is tuned for Hungarian
environment)

nls_language = HUNGARIAN
nls_sort = HUNGARIAN
nls_territory = HUNGARY
nls_date_format = YYYY.MM.DD
nls_date_language = HUNGARIAN
nls_currency = Ft
nls_iso_currency = HUNGARY
nls_numeric_characters = ". "

3., The "session" settings can be modified at the client machine's
"configuration place" it is the Registry on Windows(Win32). (I don't now
what is on MAC).
So on Win32 platforms the Registry key can be found under
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE and
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMES\ORACLE1
you can set for example the Date Format by adding the following "string" key
:
NLS_DATE_FORMAT="YYYY.MM.DD"
(Hungarian Date Format)

It was the Oracle part of the story, lets see the Borland (BDE) part of the
story:

1., There is a "system" level language driver can be set with the BDE
Administrator:
"Configuration" -> "System" -> "INIT" -> "LANGDRIVER"

2., There is a driver/alias/database level language driver can be set with
the BDE Administrator:
It can be set from Delphi throught the TDatabase.Params property you can add
the line LANGDRIVER=ANHUNDC for example which is the correct Hungarian
landriver. If you don't set this parameter the default will be used which
can be set with the BDE Administrator:
"Configuration" -> "Drivers" -> "Native" or! "ODBC" -> "any dbms driver" ->
"LANGDRIVER"
It is a good idea to set up these values at BDE Admin, if you forget to set
up explicitely in your Delphi code.

Regards
Dezso Meszaros
de...@park.fph.hu

0 new messages