BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Knox
Beiträge: 7
Registriert: Mi 16. Okt 2019, 18:27

[gelöst] keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von Knox » So 20. Okt 2019, 11:54

Hallo,
nach Migration gem. Anleitung funktioniert fast alles wieder problemlos. Die Datenbank wird vom "Hauptformular" aus gesteuert. Benutzer sehen im Prinzip auch nur dieses Formular und die dort ausgewählten Formulare bzw. Berichte. Ich habe beim Funktionstest jedoch festgestellt, dass nach Makro-gesteuertem Schließen des Hauptformulars und Beenden von Base neu erfasste Daten und Änderungen nicht gespeichert werden, obwohl explizit die Speicherung "oDoc.store()" in dem bekannten Makro enthalten ist. Erst wenn ich das Hauptformular ohne Makro schließe und auf der Benutzeroberfläche Speichern bestätige oder Base schließe, werden die Datensätze gespeichert bzw. erscheint ein Hinweis. Unter HSQLDB hat alles einwandfrei funktioniert. Obwohl in jedem Formular die Speichern-Schaltfläche betätigt wird und die geänderten Daten in den Tabellen zu finden sind, werden sie beim Schließen von Base nicht übernommen.
Daher meine Frage: Kann man die doppelte Speicherbestätigung in Firebird per Makro auslösen oder handelt es sich um einen Fehler, der zur Zeit noch nicht zu beheben ist?

Gruß Knox
Zuletzt geändert von Knox am Sa 9. Nov 2019, 09:01, insgesamt 1-mal geändert.

Wanderer
Beiträge: 895
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von Wanderer » Mi 23. Okt 2019, 07:52

Hallo,

ohne Quelltext schwierig.

Ich suche Fehler meist erstmal bei mir, daher erst die Prüfung, ob das odoc.store() durchlaufen wird - msgbox etc.

Dann nach Roberts Hinweis im folgenden Link prüfen, ob odoc den richtigen Inhalt hat:
https://ask.libreoffice.org/de/question ... chliessen/

Das generell beim Beenden nicht gespeichert wird hätte sonst schon jemandem auffallen müssen.

Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

Knox
Beiträge: 7
Registriert: Mi 16. Okt 2019, 18:27

Re: keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von Knox » Mi 23. Okt 2019, 17:57

Danke für den Hinweis Jörn. Kann es leider erst nächste Woche testen. Das Problem der doppelten Speicherabfrage mit Firebird wurde schon mehrfach im Netz erwähnt. Auch RobertG ist sich offenbar nicht sicher in seinem Lösungsansatz ob es funktioniert, aber klingt logisch. Die produktive Datenbank läuft schon seit Jahren problemlos mit embedded HSQLDB und daran wird erst etwas geändert, wenn sicher keine Fehler mehr auftreten.
Gruß Knox

Knox
Beiträge: 7
Registriert: Mi 16. Okt 2019, 18:27

Re: keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von Knox » Sa 26. Okt 2019, 22:29

Hallo,
ich habe leider immer noch keine Lösung für das Problem gefunden. Wenn ich wie bei HSQLDB per Makro
oDoc = ThisDatabaseDocument
oDoc.store()
oDoc.close(True)
StarDesktop.terminate()
das Hauptformular schließe und Libre Office beende, dann erscheint die zweite Aufforderung zum Speichern geänderter Daten nicht und alle Datenänderungen werden nicht übernommen.
Ich habe jetzt das Makro abgeändert, so dass nur das Hauptfomular geschlossen wird. Die Anwendung muss dann entweder manuell geschlossen werden, damit der Hinweis auf geänderte Daten erscheint oder vor Beendigung von Base wird der Speichern-Button betätigt. Nicht elegant, aber für den Übergang machbar. Meines Erachtens handelt es sich bei der doppelten Datenspeicherung um einen ärgerlichen Bug.
Gruß Knox

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von F3K Total » So 27. Okt 2019, 08:51

Moin,
denke man muss die Daten vor dem Speichern der .odb in die eingebettete Firebird-Datenbank zurückschreiben, das geht per Makro mit:

Code: Alles auswählen

ThisDatabasedocument.Datasource.flush
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

Knox
Beiträge: 7
Registriert: Mi 16. Okt 2019, 18:27

Re: keine Speicherung geänderter Daten nach Migration HSQLDB > Firebird,

Beitrag von Knox » Mo 28. Okt 2019, 10:07

Das war genau das, was ich gesucht habe. Das Problem hat mich viel Zeit gekostet. Vielen Dank F3K Total. Meine Anmeldung in dem Forum hat sich schon richtig gelohnt. :D
Aus dem alten Makro (hatte ich mir mal als Muster kopiert und es wird wahrscheinlich oft verwendet) musste ich zusätzlich noch oController.ActiveConnection.close() entfernen, sonst funktioniert das Update der Datenbank nicht.

Mit diesem Makro funktioniert jetzt die Speicherung ohne weitere Rückfrage, das Schließen des Hauptformulars und der Anwendung:

Code: Alles auswählen

SUB speichern_und_beenden(event as object)
        oController = ThisDatabaseDocument.CurrentController
        oController.closeSubComponents
        oDoc = ThisDatabaseDocument
        oDoc.Datasource.flush
        oDoc.close(True)
        StarDesktop.terminate()   
END SUB 
Ich weiß nicht, ob diese Lösung optimal ist. Gerne nehme ich Änderungs- oder Verbesserungsvorschläge entgegen.

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten