[[Vorlage(getestet, Focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(3)]] [wikipedia:ODBC:ODBC (Open Database Connectivity)] ist eine Datenbankschnittstelle, mit der verschiedene Datenbanken über eine generische, datenbankunabhängige Schnittstelle gesteuert werden können. Viele Anwendungen unterstützen die ODBC-Schnittstelle für Datenbankzugriffe, z. B. [:Office_Komponenten#Base-Datenbank:OpenOffice.org Base] und das gleichlautende [:Office_Komponenten#Base-Datenbank:LibreOffice Base] = Anwendungsszenarien = * Bearbeitung z.B. eine MySQL-Datenbank auf einer Website mit Hilfe von [:Office_Komponenten#Base-Datenbank:LibreOffice Base]. Dabei stehen dann die Daten sowohl auf dem Web, als auch in den LibreOffice-Modulen bereit. * Erstellung von Auswertungen aus Daten eines [:ERP:ERP- oder Warenwirtschaftssystems] Ubuntu wird in der Grundkonfiguration ohne ODBC ausgeliefert. Diese Anleitung erklärt auf einfache Weise, wie eine solche ODBC-Datenquelle einzurichten ist. = Installation = Folgende Pakete müssen installiert [1] werden: {{{#!vorlage Paketinstallation unixodbc, universe }}} = Installation eines ODBC-Treibers auf dem Client-Rechner = Dazu muss auf dem System, welches auf die Datenbank zugreift, gegebenenfalls noch der passende ODBC-Treiber für die Datenbank installiert werden, z. B. * [http://www.mysql.de/products/connector/ MySQL ODBC-Treiber] {en} * [http://www.ch-werner.de/sqliteodbc/ SQLite ODBC Driver] {en} * [https://www.freetds.org/ Microsoft SQL Server Driver (FreeTDS)] {en} Eine umfassende [http://www.unixodbc.org/drivers.html Treiber-Liste für alle unterstützten Datenbanken] {en} ist bei unixODBC zu finden. = ODBC-Datenquelle einrichten = Nachdem die Pakete installiert wurden, müssen die Dateien '''odbc.ini''' und '''odbcinst.ini''', welche nach der Installation leer sind, einmalig mit einem Editor[2] mit Root-Rechten bearbeitet werden, um die Datenbank als ODBC-Datenquelle einzurichten. Es gibt zwei Versionen der Dateien: 1. '''/etc/odbc.ini''' und '''/etc/odbcinst.ini''' zur Spezifikation systemweiter Datenquellen 1. '''~/.odbc.ini''' und '''~/.odbcinst.ini''' zur Spezifikation benutzerdefinierter Datenquellen In der Datei '''[.]odbcinst.ini''' werden die notwendigen Daten für den jeweiligen ODBC-Treiber eingetragen. In der Datei '''[.]odbc.ini''' werden die Datenquellen beschrieben und welche Treiber diese benutzen sollen. == Beispiel Microsoft SQL Server-Datenbank == {{{#!vorlage Warnung Die folgenden Inhalte verwenden eine Microsoft SQL-Datenbank als Beispiel. Verwendet wird der Treiber [https://www.freetds.org/ Microsoft SQL Server Driver (FreeTDS)] {en}. Für andere Datenbanken ist stattdessen der Inhalt aus der Anleitung des jeweiligen ODBC-Treiber-Anbieters zu übernehmen. }}} Folgender Inhalt ist in die Datei '''/etc/odbcinst.ini''' einzufügen. Es ist sicher zustellen, dass nach der Installation des FreeTDS Treibers die Bibliotheksdatei auch in dem Verzeichnis existiert, welches dem Parameter `Driver` übergeben wird. Der Parameter `Description` dient lediglich der Dokumentation. {{{ [FreeTDS] Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Description = v0.64 with protocol v4.2 }}} Folgender Inhalt ist in die Datei '''/etc/odbc.ini''' einzufügen. Dem Parameter `Driver` muss der zuvor gewählte Treibername übergeben werden. Im Parameter `TDS_Version` wird die TDS Protokollversion definiert. Der Standardwert ist `auto`. Jedoch muss dieser ggf. auf den Wert angepasst werden, welcher für den Ziel-SQL-Server besser geeignet ist. Siehe hierzu die [https://www.freetds.org/ FreeTDS Dokumentation] {en}. Der Parameter `Description` dient lediglich der Dokumentation. {{{ [MySQLServerName] Driver = FreeTDS Server = MySQLServer.intern Port = 1433 TDS_Version = 7.0 Desription = ODBC Datenverbindung zur Datenbank MyDatabaseName Database = MyDatabaseName }}} === Testen der ODBC-Verbindung mittels isql === Aufruf des Programmes `isql`. Die genaue Syntax ist der [:man:Manpage] zu entnehmen: Beispiel: {{{ isql MySQLServerName sa MyPassword }}} Beispiel SQL-Statement: {{{ SQL>select * from information_schema.tables where table_type ='BASE TABLE' }}} = Datenbank-Zugriff in LibreOffice einrichten = == Zugriff mittels LibreOffice Base == Nachdem diese Dateien erstellt wurden, kann [:LibreOffice/Installation/#Nachinstallation-Impress-Draw-und-Base: LibreOffice Base] geöffnet werden und die ODBC-Datenbank in LibreOffice integriert werden. Der Eröffnungsdialog ''"Datenbank auswählen"'' erscheint 1. Option ''"Verbindung zu einer bestehenden Datenbank herstellen"'' auswählen und in der darunter liegenden Auswahlliste ''"ODBC"'' auswählen und mit ''"Vor"'' bestätigen 1. Eingabe der ODBC Verbindung bzw. Auswahl über ''"Durchsuchen..."'' und mit ''"Vor"'' bestätigen 1. Eingabe Benutzernamen und wenn vorhanden ein Kennwort 1. Die Verbindung kann nun mittels ''"Verbindung testen"'' getestet werden; bei Erfolg bestätigt man wieder mit ''"Vor"'' 1. Abschließend wird über die per Standard voreingestellten Optionen die Datenbank in Libre Office angemeldet und auf Wunsch geöffnet durch ''"Beenden"'' Die Tabellen sollten jetzt im Tabellenteil des Base-Moduls erscheinen. Wie bei jeder anderen Datenbank in LibreOffice können jetzt zusätzliche Abfragen und Formulare erstellt werden. == Zugriff mittels LibreOffice Calc == Zunächst muss die zuvor erstellte Base-Datenbank in LibreOffice wie folgt registriert/verknüpft werden: 1. LibreOffice Calc öffnen 1. das Menü ''"Extras/Optionen..."'' auswählen 1. in der linken Baumstruktur ''"LibreOffice Base/Datenbanken"'' auswählen 1. mittels ''"Neu..."'' das Fenster "Neue Datenbankverknüpfung anlegen" öffnen 1. Datenbankdatei inkl. Pfad eintragen oder mittels ''"Durchsuchen..."'' auswählen und einen frei wählbaren Registernamen vergeben und mit ''"OK"'' bestätigen 1. abgeschlossene Regestrierung mit ''"OK"'' bestätigen Abschließend kann über das Menü ''"Ansicht/Datenquellen"'' die Registrierte Datenbank ausgewählt und Inhalte (z.B. Abfargen) hieraus in eine Zelle, via "drag & drop", eingefügt werden. = Links = * [http://www.unixodbc.org/ Projektseite von UnixODBC] {en} * [https://de.libreoffice.org/get-help/documentation/ Hilfe zu LibreOffice Base und Calc] {de} Link zu den Handbüchern der LibreOffice Produkte * [http://de.openoffice.org/product/base.html Openoffice.org-BASE] {en} * [https://www.linux-community.de/ausgaben/easylinux/2007/03/openoffice-datenbank-funktionen-in-calc/ Datenbankfunktionen in Calc] {de} # tag: Büro, Datenbank, ODBC