2

I'm currently developing a application based in Rcode, ODBC and Firebird.

For that, first I've installed firebird server and unixODBC (both 64 bits since my machine OS is 64-bits). I tried with 32-bits software aswell since Ubuntu multiarch allow it, but that caused another problem (doesnt matter in this subject).

Created database, using firebird isql function (/opt/firebird/bin/isql), and made some fake tables with integer, float, text columns.

I can connect to it using unixODBC isql function (after properly programming DSN and Driver in odbc.ini / odbcinst.ini), but theres a problem:

I can't select tables containing text columns, it gives error std::bad_alloc

After some research, I've discovered slencheck function from unixODBC, using it on my driver returns

slencheck: sizeof(SQLLEN) == 4
slencheck: driver manager and driver differ!!!

How can I modify unixODBC SQLLEN so it became compatible with 64-bits Firebird ODBC driver?

I can't select text columns because of SQLLEN or there's more to this? I think this odbc's github issue is related to mine

2

1 Answer 1

4

I came to a solution, if anyone is interested:

For any reason, firebird ODBC 64-bits driver downloaded from oficial site comes with SQLLEN = 4 bytes. After some help, I managed to compile driver from source code, and the result seems to work with 8 bytes SQLLEN.

In the compile proccess, I had a BUILD_DRIVER_VERSION error, modifying line 139 (SetupAttributes.h), adding spaces between each number fixed it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.