odbc: nem a méret a lényeg...

Mármint az egyes típusoké...


=== AIX ===

$ odbcinst --version
unixODBC 2.3.2

32-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2
64-bit: Sizes of types: SQLINTEGER:8 SQLLEN:8 SQLSETPOSIROW:2

Ha '-DBUILD_LEGACY_64_BIT_MODE'-val fordítjuk:
64-bit: Sizes of types: SQLINTEGER:8 SQLLEN:8 SQLSETPOSIROW:2

=== linux ===

$ odbcinst --version
unixODBC 2.2.14

32-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:4
64-bit: Sizes of types: SQLINTEGER:4 SQLLEN:8 SQLSETPOSIROW:8

Ha '-DBUILD_LEGACY_64_BIT_MODE'-val fordítjuk:
64-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2

AIX-on forrásból telepítve, linux-on deb-ből.

Szerk:
http://www.unixodbc.org/doc/ODBC64.html: na amit itt írnak, azzal egyik sincs összhangban.

Szerk:
https://msdn.microsoft.com/en-us/library/ms716287%28v=vs.85%29.aspx: ez a MS álláspontja
https://support.microsoft.com/en-gb/kb/298678: meg ez is

Szerk: még egészítsük ki azzal, hogy szerintem mennyinek kellene lennie, a leírások alapján:


32-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2
64-bit: Sizes of types: SQLINTEGER:4 SQLLEN:8 SQLSETPOSIROW:8

Hozzászólások

Na ezt próbálom most a /usr[/local]/include/unixodbc_conf.h végére biggyeszteni:


#if __SIZEOF_LONG__ == 4 || __SIZEOF_LONG__ == 8
   #undef  SIZEOF_LONG_INT
   #define SIZEOF_LONG_INT __SIZEOF_LONG__
#else
   Ráfaragtál...
#endif

Utána:


Aix-32:
Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2
Aix-64:
Sizes of types: SQLINTEGER:4 SQLLEN:8 SQLSETPOSIROW:8
linux-32:
Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2
linux-64:
Sizes of types: SQLINTEGER:4 SQLLEN:8 SQLSETPOSIROW:8

Azért ez bíztatóbb...