🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Die Datenbank lief auf einer alten Base-Version, wobei Base das Frontend und Maria das Backend war. Ich habe alles
upgedatet auf:
MariaDB 5.5
LibreOffice 7.0.3
Angebunden über JDBC
MySQL-Connector
Verbindung läuft; Authentifizierung läuft; Tabellen laufen; viele Abfragen laufen; viele Formulare laufen
einige Makros waren fehlerhaft; größtenteils repariert;
Fehler in den Abfragen:
Einige Abfragen laufen nicht und ich kann es mir nicht erklären. Exemplarisch habe ich hier mal einige vorgestellt.
Beispielsweise habe ich eine sehr komplexe Abfrage, die eine Rechnungsausgangsliste erstellt. Diese Abfrage funktioniert als Abfrage (ist aber zu komplex für den Entwurfsmodus) und gibt mir die gewünschten Datensätze zurück. Weiterhin gibt es die Rechnungsausgangsliste_Steuerberater Abfrage, die auf die eben genannte Abfrage zurückgreift:
Statement:
SELECT `Rechnungsausgangsliste`.`Rechnungsnummer`, `Rechnungsausgangsliste`.`Rechnungsdatum`, `Rechnungsausgangsliste`.`Träger-Name`, `Rechnungsausgangsliste`.`Rechnungsbetrag-Brutto`, `Rechnungsausgangsliste`.`Zahlungseingang`, `Auditoren`, `Maßnahme`, `Zertifikat`, `Rechnungsausgangsliste`.`Bemerkung`
FROM `Rechnungsausgangsliste`, `meinedb`.`buffer` AS `buffer`
WHERE `Rechnungsausgangsliste`.`Rechnungsdatum` BETWEEN `buffer`.`Zeitraum_von` AND `buffer`.`Zeitraum_bis`
Diese Abfrage funktioniert. Ich habe sehr ähnlich strukturierte Abfragen, die auf die Rechnungsausgangsliste zurückgreifen, die nicht gehen. Ich habe daraufhin die Statements reduziert, bis ich bei
select * from Rechnungsausgangsliste anlangte. Es ging nicht. Die Fehlermeldung war wie immer: "Die Dateninhalte konnten nicht geladen werden"
Daraufhin habe ich eine neue Abfrage direkt in SQL erstellt und das funktionierende Statement rüberkopiert und es ging NICHT. Es war kopiert. Kein versehentlicher Punkt oder whatever. Das ist für mich nicht erklärlich. Ich habe mir daraufhin die content.xml angeschaut, das sah aber bis auf die Bezeichnung identisch aus. Dennoch ging es nicht.
Bei den nicht in Base funktionierenden Statements ging es übrigens immer, wenn ich die Statements direkt in Maria ausgeführt hatte.
Alternativ hatte ich versucht, die komplexe Anfrage Rechungsausgangsliste als Ansicht zu speichern. Gleiche Fehlermeldung. Wenn ich den View übrigens auf der MariaDB-Ebene ansehe, ist er da und gibt mir die Datensätze zurück.
Alternativ hatte ich versucht, Views in MariaDB direkt zu erstellen. Diese waren in Base nicht sichtbar.
Fehler in den Formularen basieren - soweit ich das überblicken kann - darauf, dass einige Abfragen nicht laufen. Darum kümmere ich mich nach den Abfragen.
Berichte und restliche Makros analog dazu.
Ich hoffe sehr, dass jemand eine Idee hat. Meine sind nun aus.
Tausend Grüße
Cindy
upgedatet auf:
MariaDB 5.5
LibreOffice 7.0.3
Angebunden über JDBC
MySQL-Connector
Verbindung läuft; Authentifizierung läuft; Tabellen laufen; viele Abfragen laufen; viele Formulare laufen
einige Makros waren fehlerhaft; größtenteils repariert;
Fehler in den Abfragen:
Einige Abfragen laufen nicht und ich kann es mir nicht erklären. Exemplarisch habe ich hier mal einige vorgestellt.
Beispielsweise habe ich eine sehr komplexe Abfrage, die eine Rechnungsausgangsliste erstellt. Diese Abfrage funktioniert als Abfrage (ist aber zu komplex für den Entwurfsmodus) und gibt mir die gewünschten Datensätze zurück. Weiterhin gibt es die Rechnungsausgangsliste_Steuerberater Abfrage, die auf die eben genannte Abfrage zurückgreift:
Statement:
SELECT `Rechnungsausgangsliste`.`Rechnungsnummer`, `Rechnungsausgangsliste`.`Rechnungsdatum`, `Rechnungsausgangsliste`.`Träger-Name`, `Rechnungsausgangsliste`.`Rechnungsbetrag-Brutto`, `Rechnungsausgangsliste`.`Zahlungseingang`, `Auditoren`, `Maßnahme`, `Zertifikat`, `Rechnungsausgangsliste`.`Bemerkung`
FROM `Rechnungsausgangsliste`, `meinedb`.`buffer` AS `buffer`
WHERE `Rechnungsausgangsliste`.`Rechnungsdatum` BETWEEN `buffer`.`Zeitraum_von` AND `buffer`.`Zeitraum_bis`
Diese Abfrage funktioniert. Ich habe sehr ähnlich strukturierte Abfragen, die auf die Rechnungsausgangsliste zurückgreifen, die nicht gehen. Ich habe daraufhin die Statements reduziert, bis ich bei
select * from Rechnungsausgangsliste anlangte. Es ging nicht. Die Fehlermeldung war wie immer: "Die Dateninhalte konnten nicht geladen werden"
Daraufhin habe ich eine neue Abfrage direkt in SQL erstellt und das funktionierende Statement rüberkopiert und es ging NICHT. Es war kopiert. Kein versehentlicher Punkt oder whatever. Das ist für mich nicht erklärlich. Ich habe mir daraufhin die content.xml angeschaut, das sah aber bis auf die Bezeichnung identisch aus. Dennoch ging es nicht.
Bei den nicht in Base funktionierenden Statements ging es übrigens immer, wenn ich die Statements direkt in Maria ausgeführt hatte.
Alternativ hatte ich versucht, die komplexe Anfrage Rechungsausgangsliste als Ansicht zu speichern. Gleiche Fehlermeldung. Wenn ich den View übrigens auf der MariaDB-Ebene ansehe, ist er da und gibt mir die Datensätze zurück.
Alternativ hatte ich versucht, Views in MariaDB direkt zu erstellen. Diese waren in Base nicht sichtbar.
Fehler in den Formularen basieren - soweit ich das überblicken kann - darauf, dass einige Abfragen nicht laufen. Darum kümmere ich mich nach den Abfragen.
Berichte und restliche Makros analog dazu.
Ich hoffe sehr, dass jemand eine Idee hat. Meine sind nun aus.
Tausend Grüße
Cindy
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Treiberproblem.
Du musst vermutlich irgendwo ein "use meineDatenbank" unterbringen, damit der Treiber weiß welches Schema er verwenden muss. Meist reicht schon ein Testlauf:... bis ich bei select * from Rechnungsausgangsliste anlangte. Es ging nicht ...
Code: Alles auswählen
select * from meineDatenbank.Rechnungsausgangsliste
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Und was vielleicht noch wichtig ist: Du schreibst von der MariaDB und einem JDBC MySQL-Connector.
Es könnte ja sein, dass der MySQL-Connector neueren Datums nicht mehr einwandfrei mit der MariaDB läuft. Ich habe das hier jetzt allerdings nicht weiter getestet.Für die MariaDB bietet sich der JDBC-Treiber von https://downloads.mariadb.com/Connectors/java/ an. Der Treiber kann ebenso in den Class-Pfad eingebunden werden und wird mit org.mariadb.jdbc.Driver angesprochen.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Bei der Ansprache des Treibers wird die DB schon übergeben:
jdbc:mysql://localhost:3306/meineDB?autoReconnect=true&serverTimezone=Europe/Berlin
Und es geht ja bei der Abfrage Rechnungsausgangsliste_Steuerberater - aber nicht bei der mit dem kopierten Statement.
Kann es sonst eine versteckte Kodierung sein? Irgendwelche Whitespaces, die ungewöhnlich reagieren?
jdbc:mysql://localhost:3306/meineDB?autoReconnect=true&serverTimezone=Europe/Berlin
Und es geht ja bei der Abfrage Rechnungsausgangsliste_Steuerberater - aber nicht bei der mit dem kopierten Statement.
Kann es sonst eine versteckte Kodierung sein? Irgendwelche Whitespaces, die ungewöhnlich reagieren?
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Hallo Robert,RobertG hat geschrieben: ↑Di 15. Dez 2020, 20:01Und was vielleicht noch wichtig ist: Du schreibst von der MariaDB und einem JDBC MySQL-Connector.Es könnte ja sein, dass der MySQL-Connector neueren Datums nicht mehr einwandfrei mit der MariaDB läuft. Ich habe das hier jetzt allerdings nicht weiter getestet.Für die MariaDB bietet sich der JDBC-Treiber von https://downloads.mariadb.com/Connectors/java/ an. Der Treiber kann ebenso in den Class-Pfad eingebunden werden und wird mit org.mariadb.jdbc.Driver angesprochen.
mit dem Maria-Connector habe ich es nicht geschafft, die Verbindung herzustellen. Daher bin ich wieder auf den Mysql-Treiber umgestiegen.
Viele Grüße
Cindy
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Hallo Cindy,
das mit dem Connector von MariaDB funktioniert hier einwandfrei. Hast Du denn wirklich org.mariadb.jdbc.Driver als MySQL-JDBC-Treiberklasse angegeben?
Wenn Du mit dem lokalen Rechner arbeitest, also nicht über das Internet nach Daten suchst, dann brauchst Du autoReconnect nicht. Du hast doch die beständige Verbindung.
Auch mit dem MySQL-Treiber funktioniert das Ganze über com.mysql.jdbc.Driver.
Und so ist der Verbindungsstring bei mir, wenn ich direkt über JDBC gehe, nicht über den MySQL-Zuschnitt von LibreOffice: Und die Treiberklasse dafür ist dann
Funktioniert hier ebenso einwandfrei bei Abfragen.
Gruß
Robert
das mit dem Connector von MariaDB funktioniert hier einwandfrei. Hast Du denn wirklich org.mariadb.jdbc.Driver als MySQL-JDBC-Treiberklasse angegeben?
Wenn Du mit dem lokalen Rechner arbeitest, also nicht über das Internet nach Daten suchst, dann brauchst Du autoReconnect nicht. Du hast doch die beständige Verbindung.
Auch mit dem MySQL-Treiber funktioniert das Ganze über com.mysql.jdbc.Driver.
Und so ist der Verbindungsstring bei mir, wenn ich direkt über JDBC gehe, nicht über den MySQL-Zuschnitt von LibreOffice:
Code: Alles auswählen
mysql://localhost/libretest?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Code: Alles auswählen
com.mysql.cj.jdbc.Driver
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datenbankmigration - Die Dateninhalte konnten nicht geladen werden
Ich habe die dahinterliegenden Abfragen so verändert, dass ich keine "Unterabfragen" (Abfragen von Abfragen) verwende. Dann geht es. Ist nicht elegant, funktioniert aber zuverlässig.
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.