Subject Re: [firebird-support] Re: [ib-support] to change the decimal separator
Author Florian Hector
> Is this still the case in Firebird 1.5, or in the latest release
> (still RC) or Firebird 2.0? Isn't there any way to signal an Embedded
> Firebird engine to use the OS locale when converting a string to an
> integer?
>
> I have currently the same issue: We have a Delphi application that
> is using FloatToStr function to create the Firebird SQL statement. The
> application works excellent in US, but when we deploy it to a German
> OS, all the decimal separators are not 'comma', thus the FB SQL
> becomes something along the lines of "Select ID from the EVENTS where
> VALUE < 23,223". This is failing currently when using Embedded
> Firebird 1.5 (with no extra setting).
>
> Is there a way to indicate to the latest Firebird Engines to use the
> OS locale for string to float conversions?
>


The Firebird engine doesn't care. Just look at a table with floating point values, then set the
local settings to e.g. Germany and look again at your table. You will notice that the decimal
separator has changed from dot to comma.
Your problem is rather the function you use in Delphi, you ought to use the overloaded function of
FloatToStr:

...
var
...
fs: TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, fs);
StrToFloat('String_to_convert', fs);
...

Good luck

Florian