Beziehung läßt sich nicht erstellen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » So 27. Jan 2019, 14:45

Hallo Robert,

Wenn HSQLDB besser war, warum hat man das dann geändert?

Und wie sieht es bei externen Datenbanken aus? Ich möchte meine DB ja auf meinem NAS haben. Dort ist eine MariaDB vorhanden, die Kompatibel zu MySQL sein soll. MySQL kennt von Haus aus ja keine Beziehungen. Lassen sich diese dann in LibreOffice erstellen? Oder wie bewekstellige ich es, daß es keine Schlüsselverletzungen gibt?
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

RobertG
Beiträge: 1969
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Beziehung läßt sich nicht erstellen

Beitrag von RobertG » So 27. Jan 2019, 19:30

Hallo Nordlicht,

Firebird ist noch nicht so weit integriert. Die Funktionen sind schon vielfältiger. Ich brauche z.B. keine großen Klimmzüge zu machen, um zu einem Datum eine Zeit zu addieren und ein zweites Datum dabei zu erhalten. Ich brauche auch keine Klimmzüge mehr, um Gruppen in einem Feld zusammenzufassen, wie ich das bei den Datenbankaufgaben zum Schluss beschrieben habe.

Es ging damals um die Entscheidung "Neuere HSQLDB und weiter mit Java" oder "Neue Firebird-Datenbank". Da ist die Entscheidung auf Firebird gefallen, aber nach dem momentanen Stand wird wohl die HSQLDB auch noch in der 6er-Reihe von LO die erste Geige spielen.

Wenn Du auf Deinem NAS bereits MariaDB hast, dann nutze die und nimm LibreOffice-Base als Frontend. Die nach meinem Empfinden beste Verbindung erhältst Du zur Zeit über JDBC. Schau zu der Verbindung auch ruhig in das überarbeitet Handbuch. Da habe ich das alles aufgelistet.

Die Beziehungsdefinition geht vermutlich nur mit dem direkten Treiber, der ab LO 6.2 auch dabei ist - nur hat der Treiber einen Bug, der die Eingabe von Daten unmöglich macht. Also ungeeignet. Beziehungen habe ich aber nicht weiter getestet, da ich so etwas anders angehe.

Ich definiere Beziehungen für meine MariaDB-Projekte immer mit PHPMyAdmin, da ich auch Datenbankprojekte für Webseiten erstelle und einen Webserver auf meinem Rechner laufen habe. MariaDB ist unter Linux jetzt wohl (wegen der Lizenzbedingungen) Standard.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » So 27. Jan 2019, 20:37

Hallo Robert,
Die nach meinem Empfinden beste Verbindung erhältst Du zur Zeit über JDBC
Hm, ich habe "MySQL (nativ)" gewählt. War das ein Fehler?
Die Datenbank war ursprünglich eine Access-Datenbank. Die Accessdatei hatte ich dann mit LO geöffnet und die Tabellen samt Inhalt in die parallel mit LO geöffnete neue MariaDB kopiert. Das hat alles soweit funktioniert. Viel mehr habe ich damit allerdings noch nicht gemacht, da ich erstmal Formulare basteln muß.
Schau zu der Verbindung auch ruhig in das überarbeitet Handbuch. Da habe ich das alles aufgelistet.
Ok, dann werde ich mir das nochmal durchlesen und ändern. Wahrscheinlich muß ich dafür dann einen anderen Treiber installieren?
nur hat der Treiber einen Bug, der die Eingabe von Daten unmöglich macht.
Hoffentlich kann der bis zur finalen 6.2-Version noch behoben werden.
Ich definiere Beziehungen für meine MariaDB-Projekte immer mit PHPMyAdmin,
So viel habe ich mit phpMyAdmin noch nicht gearbeitet. Habe das gerade mal versucht. Leider wird da ein php-Fehler erzeugt, wenn ich das Tab "Designer" aufrufe. Das Anlegen einer Beziehung funktioniert auch nicht. Da bekomme ich die Meldung "Fehler: Beziehungsfunktion wurde deaktiviert". Wo kann man die denn aktivieren? Speichern der Designer-Seite geht auch nicht (da kommt ein JavaScript-Fehler).
MariaDB ist unter Linux jetzt wohl (wegen der Lizenzbedingungen) Standard.
Es fragt sich nur, wie lange die noch kompatibel sind. Schließlich werden beide Datenbanken weiter entwickelt. Da bleibt es nicht aus, daß die im Laufe der Zeit auseinander driften. Bei Webservern hat man ja weiterhin MySQL-Datenbanken und alle CMS benutzen MySQL.
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » Mo 28. Jan 2019, 17:30

Hallo,

So, ich habe die Datenbankverbindung nach einigen Fehlversuchen nun zu JDBC erfolgreich geändert. Ausgewählt aus der Liste habe ich JDBC. War das richtig, es wurde auch noch MySQL JDBC aufgeführt?
Wonach ich googlen mußte, war was genau man nun bei URL eingibt. Im Handbuch steht das nicht und so wie es im Hinweis im Verbindungs-Fenster der Datenbank-Eigenschaften steht ("beispielsweise host=$Host:$Port dbname=$Datenbank), funktionierte es nicht. Ich mußte diese Syntax eingeben:

Code: Alles auswählen

jdbc: mariadb://Hostname:Port/Datenbank_Name
Unklar war mir nach der Lektüre des Handbuches auch, welchen der verschiedenen Versionen des MariaDB-Connectors ich nehmen muß. Der Link im Handbuch führte auf eine lange Liste verschiedener Connector-Versionen, wobei nicht ersichtlich war, welche Version für meine MariaDB-Version der richtige ist (im Handbuch steht ja, daß man die zu der Datenbankversion passenden Connector wählen muß). Ich habe es dann mit der aktuellen Connector-Version versucht. Ich hoffe das war richtig? Die Verbindung hat jedenfalls funktioniert und die Tabellen und Daten werden in LO angezeigt.

Erfreulicher Nebeneffekt: nun sehe ich nur noch meine Datenbank im LO-Tabellen-Fenster. Zuvor mit der Verbindung "MySQL(native)" sah ich auch die anderen auf dem Server vorhandenen vom NAS voreinstestellten Datenbanken (data, information_schema, mysql, performance_schema), obwohl ich im Assistenten lediglich meine DB angegeben hatte.
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

RobertG
Beiträge: 1969
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Beziehung läßt sich nicht erstellen

Beitrag von RobertG » Mo 28. Jan 2019, 17:56

Hallo Nordlicht,

im Handbuch habe ich die Verbindung immer über den Schritt "MySQL" erklärt. Ich arbeite auch seit dem ersten auftauchen der MariaDB mit der MariaDB. geht immer - incl. direktem Treiber, sofern der in meinem System denn funktioniert.

Im Handbuch steht dann auch
jdbc:mysql://«Host der Datenbank»:3306/«Datenbankname»?autoReconnect=true
... zumindest in der Fassung, an der ich zur Zeit dran bin.
Bei Verwendung des MariaDB-Treibers muss die JDBC-Treiberklasse mit «org.mariadb.jdbc.Driver» angegeben werden. Den Treiber habe ich von hier:
https://downloads.mariadb.com/Connectors/java/

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » Mo 28. Jan 2019, 20:59

Hallo Robert,

Dann habe ich wohl eine etwas ältere Handbuchversion. Ich hatte mir die von der LibreOffice-Seite heruntergeladen.

Seltsam: Jetzt wo ich die Datenbank mit JDBC verbinde, funktionieren die Listenfelder auch mit Abfragen als Datenquelle. Kann sowas wirklich am Connector liegen?

Was ist eigentlich sinnvoller:
Die Abfragen in LO zu erstellen oder direkt als View in phpMyAdmin auf dem DB-Server?
Die zweite Variante wäre allerdings nicht so komfortabel wie mit LO. ;)
Habe mal eine Testview mit phpMyAdmin erstellt. Die sehe ich dann auch in LO. Funktioniert also prizipiell.
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » Mo 28. Jan 2019, 21:23

Hallo,

Hm, habe gerade festgestellt, daß ich nun die Tabelleneigenschaften nicht mehr bearbeiten kann, auch keine Felder hinzufügen. :(
Zuvor als MySQL(native)-Verbindung ging das noch.
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

RobertG
Beiträge: 1969
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Beziehung läßt sich nicht erstellen

Beitrag von RobertG » Di 29. Jan 2019, 07:30

Hallo Nordlicht,

was die jeweiligen Treiber bei Dir können kann ich natürlich nicht sagen. Ich habe hier OpenSUSE 15 laufen. Da funktioniert z.B. der native Treiber nur in sofern, als sich zwar Tabellen erstellen lassen, ich aber nirgendwo etwas eintragen kann.

Ansichten lassen sich auch unter LibreOffice erstellen. Da machst Du zuerst eine Abfrage und drehst daran solange, bis sie Dir entsprechend passt. Dann kannst Du, über das Kontextmenü der Abfrage, eine Ansicht daraus anfertigen.

Zum Handbuch: Da ich den Inhalt erstelle wird es da natürlich immer kleine Unterschiede geben. Die jeweils aktuellste Bearbeitungsfassung steht deshalb auf meiner Website zur Verfügung. Siehe dazu meine Signatur.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Nordlicht00
Beiträge: 22
Registriert: Sa 26. Jan 2019, 12:13

Re: Beziehung läßt sich nicht erstellen

Beitrag von Nordlicht00 » Di 29. Jan 2019, 19:59

Hallo Robert,
Da funktioniert z.B. der native Treiber nur in sofern, als sich zwar Tabellen erstellen lassen, ich aber nirgendwo etwas eintragen kann.
Das ist auch schlecht.
Mir scheint, daß MariaDB nur auf Linux ausgerichtet ist, denn der ODBC-Treiber funktionierte überhaupt nicht (mit Access versucht zu verbinden, ließ sich gar nicht erst aufrufen im ODBC-Fenster). :(
Der JDBC-Connector hat mit LO ja wenigstens soweit funktioniert, daß ich verbinden konnte un d den Tabelleninhalt editieren konnte.
Ich bin wieder zuück gegangen zu "MySQL(nativ)". Damit läuft es in meiner Kombination.
Dann kannst Du, über das Kontextmenü der Abfrage, eine Ansicht daraus anfertigen.
Cool. Das hat problemlos funktioniert. Aber leider ließen sich keine Einträge oder Änderungen in den Tabellenfeldern machen. Das gleiche passierte allerdings auch mit einer View, die ich direkt in phpMyAdmin erstellt hatte. Liegt also nicht an LO. phpMyAdmin gibt auch bei den beiden Testviews eine Warnung aus, daß kein Primärschlüssel vorhanden ist. Die zugrunde liegende Tabelle (ich hatte nur eine einzige Tabelle incl. Primärschlüsselfeld in die View rein genommen) hat aber einen Primärschlüssel. Wieso das verloren gegangen ist weiß ich nicht. Aber eventuell ist das der Grund, warum ich keine Daten in der Tabelle ändern oder eintragen kann. Nur weiß ich nicht wie ich das beheben kann. Daher werde ich der Einfachheit halber die Abfragen erstmal in LO machen. So riesig ist meine Datenbank ja nicht daß ich da auf Performance achten müßte.
Die jeweils aktuellste Bearbeitungsfassung steht deshalb auf meiner Website zur Verfügung.
Danke. Die aktuelle Version habe ich mir jetzt herunter geladen. Du hast dir ja ganz schön viel Mühe gegeben mit dem Handbuch. Ich finde das Handbuch richtig gut. :!:
Aber 600 Seiten durchzuarbeiten wird eine Weile dauern. ;)

Die Grundfunktionen meiner Datenbank laufen jetzt soweit, einfache Formulare mit Unterformularen sind auch erstellt. Der nächste Schritt wird dann sein, daß ich mich mit den Makros beschäftige, um mehr Komfort in meine Formulare rein zu bringen.
Viele Grüße
Nordlicht

Umstieg von Access auf
Libre Office 6.1.4.2 unter Windows 7

RobertG
Beiträge: 1969
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Beziehung läßt sich nicht erstellen

Beitrag von RobertG » Di 29. Jan 2019, 21:01

Hallo Nordlicht,

Ansichten kannst Du in keiner Datenbank anschließend mit Daten versehen. Ansichten werden von den Datenbanken wie Tabellen ohne Schreibrechte bereitgestellt.

Falls Access so etwas kann, dann versteckt es hinter dem Begriff "Ansicht" auch nur eine Abfrage, wie sie in Base in der GUI erstellt wird. Willst Du das Ergebnis einer Abfrage weiter bearbeiten, so kannst Du das (mit Grenzen, siehe Handbuch) nur, indem die Abfrage alle Primärschlüssel der betreffenden Tabellen bereitstellt und keine Funktionen benutzt werden, die der GUI nicht bekannt sind (direkte SQL-Ausführung erforderlich?).

Ansichten laufen schneller und lassen sich besser z.B. in Berichten nutzen, da die Berichte nicht irgendwelchen umständlichen SQL-Code verarbeiten müssen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Antworten