Unter Windows mit LibreOffice auf Firebird-Datenbanken zugreifen

Um unter Windows7 oder Windows10 mit LibreOffice auf die Inhalte einer Datenbank eines Firebird-Datenbank-Servers zugreifen zu können, ist Folgendes zu tun (in meinem Fall läuft Firebird als Superserver unter Ubuntu 16.04 LTS):

  • Auf dem Server den Remote-Zugriff ermöglichen und einen Alias definieren
  • ODBC-Treiber installieren
  • gds32.dll installieren
  • ODBC-Datenquelle definieren
  • Eine LibreOffice-Datenbank definieren

Remote-Zugriff und Alias

Standardmäßig erlaubt Firebird nur den Zugriff vom selben Rechner. Um den Zugriff von Windows auf den unter Ubuntu laufenden Firebird-Server zu erlauben, ändern wir die Konfiguration:

$ sudo vi /etc/firebird/2.5/firebird.conf

...
# nur lokalen Zugriff erlauben (Standard)
# RemoteBindAddress = localhost

# Zugriff von außen ermöglichen
RemoteBindAddress =
...

Danach den Firebird-Server neu starten:

$ sudo service firebird2.5-super restart

Es empfiehlt sich, für die Datenbanken einen Alias zu definieren, auf die man von außerhalb zugreifen möchte. Aliase werden in der Datei /etc/firebird/2.5/aliases.conf definiert. Ich habe es mir angewöhnt, Datenbanken im Verzeichnis /opt/firebird zu erzeugen, prinzipiell können die liegen wo man möchte.

Das Beispiel zeigt, wie man von außerhalb über $SERVER:foobar auf /opt/firebird/foobar.fdb zugreifen kann:

$ sudo vi /etc/firebird/2.5/aliases.conf

# ------------------------------
# List of known database aliases
# ------------------------------

#
# Example Database:
#
employee.fdb = /usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb
employee = /usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb

#
# Live Databases:
#
foobar = /opt/firebird/foobar.fdb

Tipp: Um zu testen, ob der Zugriff prinzipiell funktioniert, ist Flamerobin sehr hilfreich. Flamerobin kann man sowieso jedem uneingeschränkt empfehlen, der Firebird nutzt.

ODBC-Treiber

Nun müssen die Firebird-ODBC-Treiber installiert werden. Wer LibreOffice in 32-bit benutzt, benötigt auch 32-bit-ODBC-Treiber, wer LibreOffice in 64-bit (empfohlen), benötigt auch die 64-bit-ODBC-Treiber. Über Kreuz funktioniert es einfach nicht, glaubt mir, ich habe damit schon Stunden vertrödelt. 😉

Die ODBC-Treiber können hier heruntergeladen werden (Stand März 2020): https://www.firebirdsql.org/en/odbc-driver/

gds32.dll

Die ODBC-Treiber benötigen eine DLL, die auf tiefer Ebene die Kommunikation mit der Firebird-Datenbank erledigt. Aus historischen Gründen (Firebird war vorher Interbase und davor, ach was weiß ich… Es ist kompliziert) heißt diese DLL „gds32.dll“. Wenn diese bisher nicht auf dem eigenen System installiert ist, kann man diese nur erhalten, indem man die Firebird-Server-Installationsfiles herunterlädt. Man muss den Server nicht unter Windows installieren, aber die DLL befindet sich in den Archiven.

Da auf meinem Ubuntu 16.04 noch ein Firebird-Server 2.5.x läuft, habe ich die Installationsfiles für die 64-bit-Windows-Version des Firebird-Servers 2.5.x heruntergeladen.

Im Firebird-2.5.9.27139-0_x64.zip liegt im Unterverzeichnis „bin“ eine Datei namens „fbclient.dll“ – und die benötigen wir.

Die fbclient.dll entpacke man in ein temporäres Verzeichnis, benenne sie in gds32.dll um und verschiebe sie anschließend (als Administrator) ins Verzeichnis C:\Windows\System32.

Für 32-bit lade man entsprechend einen 32-bit-Firebird-Server herunter, entpacke die fbclient.dll, benenne sie in gds32.dll um und verschiebe sie ins Verzeichnis C:\Windows\SysWOW64\

ODBC-Datenquelle

ODBC-Datenquellen definiert man unter Windows mit „ODBC-Datenquellen-Administrator“. Diesen gibt es in zwei Versionen: 32-bit und 64-bit. Die ausführbare Datei heißt jeweils odbcad32.exe (ja, auch die 64-bit-Version hat eine 32 im Namen).

  • Die 32-bit-Version liegt unter C:\Windows\SysWOW64\odbcad32.exe
  • Die 64-bit-Version liegt unter C:\Windows\System32\odbcad32.exe

In diesem Beispiel habe ich die 64-bit-ODBC-Treiber installiert, starte daher auch c:\Windows\System32\odbcad32.exe (also die 64-bit-Version):

Hier klickt man zunächst auf „System-DSN“, anschließend auf „Hinzufügen“, um eine neue Datenquelle anzulegen.

Nun wähle man „Firebird“ aus und wähle „Fertig stellen“.

Hier wird es nun spannend. Der Data Source Name (DSN) / der Datenquellen-Name ist derjenige, mit dem wir unter Windows in Kontakt treten werden. Er ist wie die Beschreibung frei wählbar. Unter „Database“ gibt man durch einen Doppelpunkt getrennt den Datenbank-Server und den -Alias an, desweiteren den Account und dessen Password, mit dem man auf die Datenbank zugreifen möchte.

Wenn hier alles korrekt eingetragen wurde, die gds32.dll korrekt installiert ist (siehe oben), der Windows-Rechner auf den Firebird-Server zugreifen kann (TCP/IP-Verbindung steht) und auch darf (siehe oben), der Datenbank-Alias korrekt ist und Account/Password stimmen, dann sollte nach dem Klick auf „Test connection“ folgendes erscheinen:

LibreOffice-Datenbank definieren

Nun starte man „LibreOffice Base“ (sbase.exe). Hier wähle man „Verbindung zu einer bestehenden Datenbank herstellen“ und wähle im Dropdown-Menü „ODBC“. Danach auf „Vor“ klicken.

Im folgenden Dialog geben wir den Namen der ODBC-Datenquelle (Data Source Name / DSN, siehe oben) an oder wählen aus den verfügbaren Datenquellen nach einem Klick auf „Durchsuchen“ aus, klickt an schließend wieder auf „Vor“.

Bei der Benutzer-Authentifizierung müssen wir nichts eingeben, da wir Account + Kennwort bereits bei der Definition der ODBC-Datenquelle erledigt haben. Hier also einfach auf „Vor“ klicken.

Die Auswahl können wir auf der anschließend erscheinenden Seite so lassen und auf „Beenden“ klicken. Nun speichert man die Datenbankdefinition irgendwo im eigenen Dateisystem (z.B. als „foobar.odb“). Anschließend öffnet sich die Oberfläche zur Bearbeitung der Datenbankinhalte. Wenn die Datenbank bereits Tabellen enthält, so sollten diese nun direkt zu sehen sein.

Ein Doppelklick auf die gespeicherte .odb-Datei wird ab sofort LibreOffice Base starten und die definierte Datenbank öffnen.

Wie man Daten aus dieser Datenquelle in LibreOffice Calc verwendet, habe ich bereits in diesem Beitrag gezeigt: Kurztipp: Externe Daten in Excel2000 und LibreOffice

Links