mcready
Goto Top

Firebird SQL (Win) über ODBC (Linux) abfragen

Von hinten durch die Brust ins Auge ... muß aber sein

Hallo *.*,

folgende Konstellation ist gegeben:

Firebird SQL 1.5 auf Win 2008 Server, im Produktiveinsatz
Debian 5 Server (hauptsächlich Web/Intranet), ebenfalls im Produktiveinsatz

Vom Linux-Server aus soll nun per ODBC (falls jemand was anderes/besseres weiß: raus damit!) eine Tabelle der FB-Datenbank gelesen werden.
Kein Schreibzugriff, keine JOINs, einfach nur ein SELECT.

Probleme hierbei:
- Firebird 1.5 ist relativ alt, die darauf laufende Anwendung unterstützt aber noch kein 2.x
- Für Debian gibt es nur eine rudimentäre FB-Unterstützung und das erst so richtig an 2.x
- ODBC unter Linux ist ... tricky.

Aktuell habe ich unixODBC und die libOdbcFb.so installiert und folgendes in meiner odbc.ini:

[FirebirdSQL]
Description = Firebird Anbindung
Driver = FirebirdSQL
Trace = Yes
TraceFile = ODBCFB.log
Database = Server2vm01:D:\xxx\Daten\xxx.GDB
Servername = Server2vm01
UserName = ODBC
Password = xxx
Port = 5432
Protocol = 6.4
ReadOnly = Yes
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

Dann noch die odbcinst.ini:

[FirebirdSQL]
Description = FirebirdSQL driver for Linux
Driver = /usr/lib/odbc/libOdbcFb.so
FileUsage = 1
Threading = 2

Führe ich jetzt isql aus, erhalte ich jedoch das hier:

  1. isql -v FirebirdSQL
libstdc++.so.5: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden[08004][unixODBC][ODBC Firebird Driver]Unable to connect to data source: library 'libgds.so' failed to load
[ISQL]ERROR: Could not SQLConnect

Google spuckt mir zu dem Thema recht viel aus, aber nicht i.V.m. Firebird oder ähnliches, was ich ableiten kann.
Für die libgds.so habe ich einen symlink auf die libfbclient.so erstellt (wie im FB-Manual beschrieben).
Ansonsten gehen aber alle Manuals immer davon aus, daß der FB-Server auch lokal installiert und nicht über das Netzwerk abgefragt wird.

Hat jemand schonmal eine solche oder ähnliche Konstellation zum Laufen gebracht und wenn ja: wie?

Eine andere Methode wäre evtl. noch die Verwendung des Firebird-Moduls für PHP5, aber hierzu ist fast gar nichts an brauchbarer Doku zu finden face-sad

Content-ID: 140167

Url: https://administrator.de/contentid/140167

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

Xpl0iT
Xpl0iT 08.04.2010 um 19:59:57 Uhr
Goto Top
http://www.rrze.uni-erlangen.de/infrastruktur/datenbanken/firebird/fire ...

Diese Dokumentation macht doch einen Soliden eindruck.
mcready
mcready 09.04.2010 um 08:40:32 Uhr
Goto Top
Die Dokumentation greift leider erst, wenn die Verbindung zur Datenbank bereits besteht.
Ähnlich sieht es auch direkt bei php.net aus (http://de3.php.net/manual/de/intro.ibase.php).

Inzwischen bin ich etwas weiter, leider noch nicht am Ziel.

odbcinst.ini:
[FirebirdSQL]
Description = FirebirdSQL driver for Linux
Driver = /usr/lib/odbc/libOdbcJdbc.so
Setup = /usr/lib/odbc/libOdbcJdbcS.so
FileUsage = 1
Threading = 2

odbc.ini
[FirebirdSQL]
Description = Firebird Anbindung
Driver = FirebirdSQL
Dbname = Server2vm01:D:\XXX\Daten\XXX.GDB
User = ODBC
Password = XXX
Role =
CharacterSet =
ReadOnly = No
NoWait = No

Halbwegs brauchbare Anleitung: http://www.firebirdnews.org/?p=1324
Und die maximale Variante, jedoch speziell auf einen kommerziellen Treiber ausgerichtet: http://www.easysoft.com/developer/interfaces/odbc/linux.html#odbc_drive ...
the-tsc
the-tsc 21.06.2011 um 18:02:34 Uhr
Goto Top
Hallo,

konntest du dein Problem lösen? ich habe ein ähnliches Problem um mit Ubuntu auf Firebird zuzugreifen. auf MSSQL zuzugreifen funktioniert. Hatte mich an folgende Anleitung gehalten:
https://help.ubuntu.com/community/ODBC
libgds habe ich nicht installiert, da ich nicht mittels openoffice darauf zugreife, sondern über php odbc_connect

odbcinst.ini
[Firebird]
Description = Firebird ODBC Driver
Driver = /usr/lib/odbc/libodbcfb.so
Setup = /usr/lib/odbc/libodbcfb.so
UsageCount = 1
CPTimeout =
CPReuse =

[FreeTDS]
Description = MSSQL
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsodbc.so
UsageCount = 1
CPTimeout =.
CPReuse =.


isql -v DBNAME
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/odbc/libodbcfb.so' : file not found
[ISQL]ERROR: Could not SQLConnect


Die Datei ist aber definitiv da!
the-tsc
the-tsc 22.06.2011 um 16:00:19 Uhr
Goto Top
Hier (1) habe ich einen Hinweis auf folgende (2) Datei gefunden mit dieser funktioniert es dann.

Es musste nur noch ein link erzeugt werden: ln -s /usr/lib/libfbclient.so.2 /usr/lib/libgds.so

(1) http://tracker.firebirdsql.org/browse/ODBC-68
(2) http://tracker.firebirdsql.org/secure/attachment/11651/libOdbcFb.so.bz2