Mike B
Mike B

Reputation: 1

Cannot connect to Firebird 3.0 using ODBC

I have installed Firebird 3.0 (Firebird-3.0.0.32483_2_x64) under Windows 7 (64 bit). I have created a Firebird database using ISQL and want to copy data to it from a Microsoft Access database.

I have installed the Firebird ODBC driver (Firebird_ODBC_2.0.4.155_x64) and set up a User DSN through Data Sources (ODBC) in Control Panel. I am using this client - C:\Program Files\Firebird\Firebird_3_0\fbclient.dll – and when I click on “Test connection” I get the message “Connection successful”.

I have then started Access 2013. I assume that this is 64bit code as the executable is in “Program files” rather than “Program files (x86)”. When I try to create a link to the ODBC source (now shown as a “Machine data source”) I get this message –

ODBC call failed

[ODBC Firebird driver]Unable to connect to data source:library ‘C:\Program Files\Firebird\Firebird_3_0\fbclient.dll’ failed to load.(#-904)

Can anyone help with this please ? All my research on-line suggests that problems occur when 64 bit programs are used with 32 bit drivers and vice-versa, but I think that everything I am doing should be in the 64 bit realm. I have also read that 904 can indicate “Unavailable database”, but I can open ISQL and access the database successfully at the time.

A a response to Dalton's suggestion - I created a system DSN in in Control Panel. If I open Access and look at ODBC data sources, it isn't there. This seems to be a known problem looking at Microsoft's web site.

In trying this I discovered that the Access 2013 installed on my PC is a 32bit executable, even though Microsoft install it in “Program files” rather than “Program files (x86)”.

When I switch to a 32 bit ODBC source, set up using the 32 bit ODBC administrator, and try and link to it from Access I get a message, “[ODBC Firebird Driver]Error loading plugin Engine12. Module C:\Program Files\Firebird\Firebird_3_0\plugins\Engine12 exists but cannot be loaded (#-901)”.

Firebird has only installed one copy of Engine12.dll and I assume that is a 64bit dll, so I can see why that would not work, but where do I go from here ?

Upvotes: 0

Views: 2374

Answers (1)

Dalton
Dalton

Reputation: 23

Try creating a system DSN as opposed to a user DSN. I had a similar issue in the past and that fixed it for me.

Upvotes: 0

Related Questions