Hi,
I just installed Fedora 16 and it has PostgreSQL 9.1.1 and
postgresql-odbc-09.00.0200 (which is psqlODBC).
My problem comes from this code:
SQLBindParameter(hStmt,13,
SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_NUMERIC, 0, 0,
(SQLPOINTER)&co2, sizeof(co2), NULL);
New value of "co2" is 99.47 but as my Hungarian locale uses comma
instead of dot for a decimal separator, this pops up:
ERROR: invalid input syntax for type numeric: "99,47" at character 210
STATEMENT: update al set
megr=1,fpont=1478,csopvez=79,datum='2011-09-05'::date,d1='2011-09-04'::date,t1='21:30:00'::time,d2='2011-09-05'::date,t2='03:00:00'::time,temp=113,n_beepites=1,n_sikeres=1,kutfejnyomas='300',co2='99,47',h2sppm=0,hibajel=E''
where id=2805;
With my previous system when this code was used (PostgreSQL 8.2,
psqlodbc-08.02.xxxx era), the above code worked.
convert.c in psqlODBC hasn't changed much with regard to floating point
handling so it still uses setlocale() to switch to "C" locale and I also
recompiled the SRPM for Fedora 16 and config.h indeed contains
"#define HAVE_LOCALE_H 1" so the relevant code with setlocale() gets
compiled in. Still, something broke the locales where something else than
a decimal-dot is used for decimal separator.
Best regards,
Zoltán Böszörményi
--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/