Question

It seems that the 64 bits Sybase ASE drivers still consider the SQLLEN type as being 32 bits, whereas UnixODBC and pretty much every other driver want 64 bits. This is problematic for example for the strlen parameter in the SQLBindParameter function.

Although it is possible to hack this particular case by casting an SQLINTEGER array into an SQLLEN *, it would force me to make a particular ODBC call for Sybase, which defeats the purpose of a generic API.

Is this solvable? Has anyone managed to use the Sybase ODBC drivers on 64 bits Linux without these kinds of ugly hacks?

Was it helpful?

Solution

Looks like the answer is no. The Sybase API is compatible with the previous version of UnixODBC, 2.2.11, but is incompatible with UnixODBC 3.3 as SQLLEN has moved from 32 bits to 64 bits.

Solution is therefore to revert to UnixODBC 2.2.11.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top