OpenDBX

for Project:

Open Database abstraction layer

Register as a new user

Task #42 — firebird backend: SQL_INTEGER datatype is not handled correctly on 64bit systems

Attached to Project — OpenDBX
Opened by Johann Steinwendtner (steinwej) - Thursday, 7 May 2020, 11:22am
Bug Report Low
Library Normal
Unconfirmed 1.4.x
No-one Undecided
Linux 0% complete
I've been using openDBX for years on a 32bit Ubuntu server.
On testing the sw on 64bit Ubuntu bionic I 'm having troubles to obtain correct values on SQL_INT datataypes.

Please find attached patch:

--- firebird_basic.c.old 2010-08-01 04:08:39.000000000 +0200
+++ firebird_basic.c 2020-05-07 11:06:33.900899348 +0200
@@ -540,7 +540,7 @@
firebird_priv_decimal( da->sqlvar[i].sqldata, len, -(da->sqlvar[i].sqlscale) );
break;
case SQL_LONG:
- len = snprintf( da->sqlvar[i].sqldata, firebird_priv_collength( da->sqlvar + i ), "%ld", *((long*) da->sqlvar[i].sqldata) );
+ len = snprintf( da->sqlvar[i].sqldata, firebird_priv_collength( da->sqlvar + i ), "%ld", *((int32_t*) da->sqlvar[i].sqldata) );
firebird_priv_decimal( da->sqlvar[i].sqldata, len, -(da->sqlvar[i].sqlscale) );
break;
case SQL_INT64:

Comments (0) | Attachments (0) | Related Tasks (0/0) | Notifications (1) | Reminders (0) | History |