Sybase ODBC через UnixODBC в 64 битах?

Кажется, что 64-битные драйверы Sybase ASE по-прежнему считают тип SQLLEN 32-битным, в то время как UnixODBC и практически любой другой драйвер требует 64-битного типа. Это проблематично, например, для параметра strlen в функции SQLBindParameter.

Хотя этот конкретный случай можно взломать, приведя массив SQLINTEGER к SQLLEN *, это вынудит меня сделать конкретный вызов ODBC для Sybase, что противоречит цели универсального API.

Это разрешимо? Удалось ли кому-нибудь использовать драйверы Sybase ODBC на 64-разрядной версии Linux без таких уродливых хаков?


person small_duck    schedule 01.03.2012    source источник


Ответы (1)


Похоже, что нет. Sybase API совместим с предыдущей версией UnixODBC, 2.2.11, но несовместим с UnixODBC 3.3, так как SQLLEN перешел с 32-битной на 64-битную.

Поэтому решение состоит в том, чтобы вернуться к UnixODBC 2.2.11.

person small_duck    schedule 24.04.2012