{"id":1809,"date":"2020-03-31T11:43:52","date_gmt":"2020-03-31T09:43:52","guid":{"rendered":"http:\/\/www.dirk-hagedorn.de\/?p=1809"},"modified":"2023-01-10T17:24:32","modified_gmt":"2023-01-10T16:24:32","slug":"unter-windows-mit-libreoffice-auf-firebird-datenbanken-zugreifen","status":"publish","type":"post","link":"https:\/\/www.dirk-hagedorn.de\/?p=1809","title":{"rendered":"Unter Windows mit LibreOffice auf Firebird-Datenbanken zugreifen"},"content":{"rendered":"<p>Um unter Windows7 oder Windows10 mit LibreOffice auf die Inhalte einer Datenbank eines Firebird-Datenbank-Servers zugreifen zu k\u00f6nnen, ist Folgendes zu tun (in meinem Fall l\u00e4uft Firebird als Superserver unter Ubuntu 16.04 LTS):<\/p>\n<ul>\n<li>Auf dem Server den Remote-Zugriff erm\u00f6glichen und einen Alias definieren<\/li>\n<li>ODBC-Treiber installieren<\/li>\n<li>gds32.dll installieren<\/li>\n<li>ODBC-Datenquelle definieren<\/li>\n<li>Eine LibreOffice-Datenbank definieren<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p><strong>Remote-Zugriff und Alias<\/strong><\/p>\n<p>Standardm\u00e4\u00dfig erlaubt Firebird nur den Zugriff vom selben Rechner. Um den Zugriff von Windows auf den unter Ubuntu laufenden Firebird-Server zu erlauben, \u00e4ndern wir die Konfiguration:<\/p>\n<pre>$ sudo vi \/etc\/firebird\/2.5\/firebird.conf\r\n\r\n...\r\n# nur lokalen Zugriff erlauben (Standard)\r\n# RemoteBindAddress = localhost\r\n\r\n# Zugriff von au\u00dfen erm\u00f6glichen\r\nRemoteBindAddress =\r\n...<\/pre>\n<p>Danach den Firebird-Server neu starten:<\/p>\n<pre>$ sudo service firebird2.5-super restart\r\n<\/pre>\n<p>Es empfiehlt sich, f\u00fcr die Datenbanken einen Alias zu definieren, auf die man von au\u00dferhalb zugreifen m\u00f6chte. Aliase werden in der Datei \/etc\/firebird\/2.5\/aliases.conf definiert. Ich habe es mir angew\u00f6hnt, Datenbanken im Verzeichnis \/opt\/firebird zu erzeugen, prinzipiell k\u00f6nnen die liegen wo man m\u00f6chte.<\/p>\n<p>Das Beispiel zeigt, wie man von au\u00dferhalb \u00fcber $SERVER:foobar auf \/opt\/firebird\/foobar.fdb zugreifen kann:<\/p>\n<pre>$ sudo vi \/etc\/firebird\/2.5\/aliases.conf\r\n\r\n# ------------------------------\r\n# List of known database aliases\r\n# ------------------------------\r\n\r\n#\r\n# Example Database:\r\n#\r\nemployee.fdb = \/usr\/share\/doc\/firebird2.5-common-doc\/examples\/empbuild\/employee.fdb\r\nemployee = \/usr\/share\/doc\/firebird2.5-common-doc\/examples\/empbuild\/employee.fdb\r\n\r\n#\r\n# Live Databases:\r\n#\r\nfoobar = \/opt\/firebird\/foobar.fdb\r\n<\/pre>\n<p>Tipp: Um zu testen, ob der Zugriff prinzipiell funktioniert, ist <a href=\"http:\/\/flamerobin.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Flamerobin<\/a> sehr hilfreich. Flamerobin kann man sowieso jedem uneingeschr\u00e4nkt empfehlen, der Firebird nutzt.<\/p>\n<p><strong>ODBC-Treiber<\/strong><\/p>\n<p>Nun m\u00fcssen die Firebird-ODBC-Treiber installiert werden. Wer LibreOffice in 32-bit benutzt, ben\u00f6tigt auch 32-bit-ODBC-Treiber, wer LibreOffice in 64-bit (empfohlen), ben\u00f6tigt auch die 64-bit-ODBC-Treiber. \u00dcber Kreuz funktioniert es einfach nicht, glaubt mir, ich habe damit schon Stunden vertr\u00f6delt. \ud83d\ude09<\/p>\n<p>Die ODBC-Treiber k\u00f6nnen hier heruntergeladen werden (Stand M\u00e4rz 2020): <a href=\"https:\/\/www.firebirdsql.org\/en\/odbc-driver\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/www.firebirdsql.org\/en\/odbc-driver\/<\/a><\/p>\n<p><strong>gds32.dll<\/strong><\/p>\n<p>Die ODBC-Treiber ben\u00f6tigen eine DLL, die auf tiefer Ebene die Kommunikation mit der Firebird-Datenbank erledigt. Aus historischen Gr\u00fcnden (Firebird war vorher Interbase und davor, ach was wei\u00df ich&#8230; Es ist kompliziert) hei\u00dft diese DLL &#8222;gds32.dll&#8220;. Wenn diese bisher nicht auf dem eigenen System installiert ist, kann man diese nur erhalten, indem man die Firebird-Server-Installationsfiles herunterl\u00e4dt. Man muss den Server nicht unter Windows installieren, aber die DLL befindet sich in den Archiven.<\/p>\n<p>Da auf meinem Ubuntu 16.04 noch ein Firebird-Server 2.5.x l\u00e4uft, habe ich die <a href=\"https:\/\/firebirdsql.org\/en\/firebird-2-5-9\/\" rel=\"noopener noreferrer\" target=\"_blank\">Installationsfiles f\u00fcr die 64-bit-Windows-Version des Firebird-Servers 2.5.x<\/a> heruntergeladen.<\/p>\n<p>Im <a href=\"https:\/\/github.com\/FirebirdSQL\/firebird\/releases\/download\/R2_5_9\/Firebird-2.5.9.27139-0_x64.zip\" rel=\"noopener noreferrer\" target=\"_blank\">Firebird-2.5.9.27139-0_x64.zip<\/a> liegt im Unterverzeichnis &#8222;bin&#8220; eine Datei namens &#8222;fbclient.dll&#8220; &#8211; und die ben\u00f6tigen wir.<\/p>\n<p>Die fbclient.dll entpacke man in ein tempor\u00e4res Verzeichnis, benenne sie in gds32.dll um und verschiebe sie anschlie\u00dfend (als Administrator) ins Verzeichnis C:\\Windows\\System32.<\/p>\n<p>F\u00fcr 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\\<\/p>\n<p><strong>ODBC-Datenquelle<\/strong><\/p>\n<p>ODBC-Datenquellen definiert man unter Windows mit &#8222;ODBC-Datenquellen-Administrator&#8220;. Diesen gibt es in zwei Versionen: 32-bit und 64-bit. Die ausf\u00fchrbare Datei hei\u00dft jeweils odbcad32.exe (ja, auch die 64-bit-Version hat eine 32 im Namen).<\/p>\n<ul>\n<li>Die 32-bit-Version liegt unter C:\\Windows\\SysWOW64\\odbcad32.exe<\/li>\n<li>Die 64-bit-Version liegt unter C:\\Windows\\System32\\odbcad32.exe<\/li>\n<\/ul>\n<p>In diesem Beispiel habe ich die 64-bit-ODBC-Treiber installiert, starte daher auch c:\\Windows\\System32\\odbcad32.exe (also die 64-bit-Version):<\/p>\n<p>Hier klickt man zun\u00e4chst auf &#8222;System-DSN&#8220;, anschlie\u00dfend auf &#8222;Hinzuf\u00fcgen&#8220;, um eine neue Datenquelle anzulegen.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-01-240x170.jpg\" alt=\"\" width=\"240\" height=\"170\" class=\"alignnone size-thumbnail wp-image-1816\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-01-240x170.jpg 240w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-01-480x340.jpg 480w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-01.jpg 594w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/a><\/p>\n<p>Nun w\u00e4hle man &#8222;Firebird&#8220; aus und w\u00e4hle &#8222;Fertig stellen&#8220;.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-02-240x182.jpg\" alt=\"\" width=\"240\" height=\"182\" class=\"alignnone size-thumbnail wp-image-1817\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-02-240x182.jpg 240w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-02.jpg 464w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/a><\/p>\n<p>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\u00e4hlbar. Unter &#8222;Database&#8220; 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\u00f6chte.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-03-240x227.jpg\" alt=\"\" width=\"240\" height=\"227\" class=\"alignnone size-thumbnail wp-image-1818\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-03-240x227.jpg 240w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-03.jpg 467w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/a><\/p>\n<p>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 &#8222;Test connection&#8220; folgendes erscheinen:<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-04.jpg\" alt=\"\" width=\"212\" height=\"152\" class=\"alignnone size-full wp-image-1819\" \/><\/a><\/p>\n<p><strong>LibreOffice-Datenbank definieren<\/strong><\/p>\n<p>Nun starte man &#8222;LibreOffice Base&#8220; (sbase.exe). Hier w\u00e4hle man &#8222;Verbindung zu einer bestehenden Datenbank herstellen&#8220; und w\u00e4hle im Dropdown-Men\u00fc &#8222;ODBC&#8220;. Danach auf &#8222;Vor&#8220; klicken.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-05-235x240.jpg\" alt=\"\" width=\"235\" height=\"240\" class=\"alignnone size-thumbnail wp-image-1824\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-05-235x240.jpg 235w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-05-471x480.jpg 471w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-05.jpg 553w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a><\/p>\n<p>Im folgenden Dialog geben wir den Namen der ODBC-Datenquelle (Data Source Name \/ DSN, siehe oben) an oder w\u00e4hlen aus den verf\u00fcgbaren Datenquellen nach einem Klick auf &#8222;Durchsuchen&#8220; aus, klickt an schlie\u00dfend wieder auf &#8222;Vor&#8220;.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-06-235x240.jpg\" alt=\"\" width=\"235\" height=\"240\" class=\"alignnone size-thumbnail wp-image-1825\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-06-235x240.jpg 235w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-06-471x480.jpg 471w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-06.jpg 553w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a><\/p>\n<p>Bei der Benutzer-Authentifizierung m\u00fcssen wir nichts eingeben, da wir Account + Kennwort bereits bei der Definition der ODBC-Datenquelle erledigt haben. Hier also einfach auf &#8222;Vor&#8220; klicken.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-07-235x240.jpg\" alt=\"\" width=\"235\" height=\"240\" class=\"alignnone size-thumbnail wp-image-1826\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-07-235x240.jpg 235w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-07-471x480.jpg 471w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-07.jpg 553w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a><\/p>\n<p>Die Auswahl k\u00f6nnen wir auf der anschlie\u00dfend erscheinenden Seite so lassen und auf &#8222;Beenden&#8220; klicken. Nun speichert man die Datenbankdefinition irgendwo im eigenen Dateisystem (z.B. als &#8222;foobar.odb&#8220;). Anschlie\u00dfend \u00f6ffnet sich die Oberfl\u00e4che zur Bearbeitung der Datenbankinhalte. Wenn die Datenbank bereits Tabellen enth\u00e4lt, so sollten diese nun direkt zu sehen sein.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-09-240x125.jpg\" alt=\"\" width=\"240\" height=\"125\" class=\"alignnone size-thumbnail wp-image-1828\" srcset=\"https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-09-240x125.jpg 240w, https:\/\/www.dirk-hagedorn.de\/wp-content\/uploads\/2020\/03\/libreoffice-firebird-09.jpg 464w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/a><\/p>\n<p>Ein Doppelklick auf die gespeicherte .odb-Datei wird ab sofort LibreOffice Base starten und die definierte Datenbank \u00f6ffnen.<\/p>\n<p>Wie man Daten aus dieser Datenquelle in LibreOffice Calc verwendet, habe ich bereits in diesem Beitrag gezeigt: <a href=\"\/?p=1788\">Kurztipp: Externe Daten in Excel2000 und LibreOffice<\/a><\/p>\n<p><strong>Links<\/strong><\/p>\n<ul>\n<li>Homepage <a href=\"https:\/\/de.libreoffice.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">LibreOffice<\/a><\/li>\n<li>Homepage <a href=\"https:\/\/www.firebirdsql.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Firebird<\/a><\/li>\n<li>Homepage <a href=\"https:\/\/flamerobin.org\/\" rel=\"noopener noreferrer\" target=\"_blank\">Flamerobin<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Um unter Windows7 oder Windows10 mit LibreOffice auf die Inhalte einer Datenbank eines Firebird-Datenbank-Servers zugreifen zu k\u00f6nnen, ist Folgendes zu tun (in meinem Fall l\u00e4uft Firebird als Superserver unter Ubuntu 16.04 LTS): Auf dem Server den Remote-Zugriff erm\u00f6glichen und einen Alias definieren ODBC-Treiber installieren gds32.dll installieren ODBC-Datenquelle definieren Eine LibreOffice-Datenbank definieren<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[333,396,422],"class_list":["post-1809","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-firebird","tag-libreoffice","tag-windows"],"_links":{"self":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/posts\/1809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1809"}],"version-history":[{"count":15,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/posts\/1809\/revisions"}],"predecessor-version":[{"id":2147,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=\/wp\/v2\/posts\/1809\/revisions\/2147"}],"wp:attachment":[{"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dirk-hagedorn.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}