🙏 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. 🤗
[gelöst] Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
[gelöst] Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Hallo allerseits,
ich habe ein odb-File mit eingebetteter HSQL-Datenbank, vielen Queries und einem Formular mit ziemlich vielen Elementen.
Zukünftig möchte ich eine per ODBC angebundene SQLite-DB verwenden.
Der grundsätzliche Zugriff auf die externe DB klappt bereits.
Datenimport und -export sollten auch kein Problem sein.
Die Systemumgebung ist Ubuntu-Linux.
Meine Frage:
Kann man ein vorhandenes odb-File so ändern, dass es auf eine externe DB statt auf die interne DB zugreift?
Oder muss man ein odb-File komplett neu aufbauen?
LG Gerald
ich habe ein odb-File mit eingebetteter HSQL-Datenbank, vielen Queries und einem Formular mit ziemlich vielen Elementen.
Zukünftig möchte ich eine per ODBC angebundene SQLite-DB verwenden.
Der grundsätzliche Zugriff auf die externe DB klappt bereits.
Datenimport und -export sollten auch kein Problem sein.
Die Systemumgebung ist Ubuntu-Linux.
Meine Frage:
Kann man ein vorhandenes odb-File so ändern, dass es auf eine externe DB statt auf die interne DB zugreift?
Oder muss man ein odb-File komplett neu aufbauen?
LG Gerald
Zuletzt geändert von geraldfo am Fr 21. Jul 2023, 14:49, insgesamt 1-mal geändert.
Re: Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Hallo Gerald,
Du kannst die Daten von einer Datenquelle zur anderen kopieren. Das geht aber schon einmal davon aus, dass alle Felder auch entsprechend in der anderen Datenbank passen.
Mit den Abfragen und Ansichten bekommst Du vermutlich erste Probleme. Das ist ja das, was so problematisch beim migrieren von der internen HSQLDB zur internen Firebird Datenbank ist.
Die vorhandene *.odb-Datei könntest Du sinnvoll nur bei einer neuen Datenquelle nutzen, wenn es sich dabei um die gleiche Datenbankstruktur handelt. Bei Dir wäre das also eine neuere HSQLDB, nicht aber SQLite.
Im Prinzip geht natürlich eine entsprechende Änderung innerhalb so einer *.odb-Datei. Schau Dir dazu im Handbuch einmal den Anhang an, besonders das Kapitel "Änderung der Datenbankverbindung zur externen HSQLDB". Da stehen die entsprechenden Hinweise, an welcher Stelle der in der *.odb-Datei liegenden "content.xml" Änderungen für HSQLDB vorgenommen werden müssen. Jetzt müsstest Du eine neue *.odb-Datei mit den entsprechenden Verbindungsdaten zu SQLite öffnen und die entsprechenden Verbindungsdaten in der alten *.odb-Datei durch die neuen ersetzen.
Gruß
Robert
Du kannst die Daten von einer Datenquelle zur anderen kopieren. Das geht aber schon einmal davon aus, dass alle Felder auch entsprechend in der anderen Datenbank passen.
Mit den Abfragen und Ansichten bekommst Du vermutlich erste Probleme. Das ist ja das, was so problematisch beim migrieren von der internen HSQLDB zur internen Firebird Datenbank ist.
Die vorhandene *.odb-Datei könntest Du sinnvoll nur bei einer neuen Datenquelle nutzen, wenn es sich dabei um die gleiche Datenbankstruktur handelt. Bei Dir wäre das also eine neuere HSQLDB, nicht aber SQLite.
Im Prinzip geht natürlich eine entsprechende Änderung innerhalb so einer *.odb-Datei. Schau Dir dazu im Handbuch einmal den Anhang an, besonders das Kapitel "Änderung der Datenbankverbindung zur externen HSQLDB". Da stehen die entsprechenden Hinweise, an welcher Stelle der in der *.odb-Datei liegenden "content.xml" Änderungen für HSQLDB vorgenommen werden müssen. Jetzt müsstest Du eine neue *.odb-Datei mit den entsprechenden Verbindungsdaten zu SQLite öffnen und die entsprechenden Verbindungsdaten in der alten *.odb-Datei durch die neuen ersetzen.
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: Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Hallo Robert,
die externe Datenbank muss natürlich die gleiche Struktur haben.
Ich werd mir die Doku und die Datei content.xml ansehen.
Herzlichen Dank!
Gerald
die externe Datenbank muss natürlich die gleiche Struktur haben.
Ich werd mir die Doku und die Datei content.xml ansehen.
Herzlichen Dank!
Gerald
Re: Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Moin,
es hat mich interessiert ob mir die Verbindung via JDBC gelingen würde, und ja, es klappt.
Anbei eine dafür vorbereitete .odb-Datei mit einem Makro.
Ich habe mir folgenden JDBC-Driver heruntergeladen und auf meinem Rechner abgelegt.
Einfach das Makro in der angehängten .odb-Datei über das Menü starten, dann die eigene oder unten mitgelieferte .sqlite Datenbank, im Anschluss den .jar-Driver auswählen, speichern, fertig ist die .odb mit SQLITE-Verbindung über JDBC.
Getestet mit AOO, LO unter Windows 10 und Linux Mint.
Gruß und viel Erfolg damit.
es hat mich interessiert ob mir die Verbindung via JDBC gelingen würde, und ja, es klappt.
Anbei eine dafür vorbereitete .odb-Datei mit einem Makro.
Ich habe mir folgenden JDBC-Driver heruntergeladen und auf meinem Rechner abgelegt.
Einfach das Makro in der angehängten .odb-Datei über das Menü starten, dann die eigene oder unten mitgelieferte .sqlite Datenbank, im Anschluss den .jar-Driver auswählen, speichern, fertig ist die .odb mit SQLITE-Verbindung über JDBC.
Getestet mit AOO, LO unter Windows 10 und Linux Mint.
Gruß und viel Erfolg damit.
- Dateianhänge
-
- SQLITE.zip
- enthält eine .odb Datei und zum Testen eine .sqlite Datei
- (5.96 KiB) 121-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Hallo F3K Total,
vielen Dank!!!
Ich probier’s jetzt einmal mit ODBC. Es ist aber gut zu wissen, dass es noch eine Alternative gibt.
Schönes Wochenende!
Gerald
vielen Dank!!!
Ich probier’s jetzt einmal mit ODBC. Es ist aber gut zu wissen, dass es noch eine Alternative gibt.
Schönes Wochenende!
Gerald
Re: Umstellung Anwendung von eingebetteter DB auf externe SQLite-DB
Hallo allerseits,
ich bin Roberts Vorschlag gefolgt – und es hat geklappt!
Zusammenfassung:
[*] Arbeitsverzeichnis anlegen
[*] odb-File in Verzeichnis kopieren
[*] Arbeitskopie odb-File entzippen
[*] content.xml editieren (siehe unten)
[*] Unterverzeichnis database/ löschen (enthält die nicht mehr benötigte eingebettete HSQLDB)
[*] Arbeitskopie odb-File löschen
[*] Inhalt des Arbeitsverzeichnisses zippen = neues odb-File
Einträge in content.xml
Eingebettete HSQL-Datenbank
Externe SQLite-Datenbank, per ODBC angebunden
'datenbank_name' muss durch den richtigen Namen erstzt werden.
Zum leichteren Editieren von content.xml habe ich ein paar Zeilenschaltungen eingefügt und drin lassen. Ich gehe davon aus, dass das keine Probleme macht.
LG Gerald
ich bin Roberts Vorschlag gefolgt – und es hat geklappt!
Zusammenfassung:
[*] Arbeitsverzeichnis anlegen
[*] odb-File in Verzeichnis kopieren
[*] Arbeitskopie odb-File entzippen
[*] content.xml editieren (siehe unten)
[*] Unterverzeichnis database/ löschen (enthält die nicht mehr benötigte eingebettete HSQLDB)
[*] Arbeitskopie odb-File löschen
[*] Inhalt des Arbeitsverzeichnisses zippen = neues odb-File
Einträge in content.xml
Eingebettete HSQL-Datenbank
Code: Alles auswählen
<db:connection-data>
<db:connection-resource xlink:href="sdbc:embedded:hsqldb" xlink:type="simple"/>
<db:login db:is-password-required="false"/>
</db:connection-data>
<db:driver-settings db:system-driver-settings="" db:base-dn="" db:parameter-name-substitution="false"/>
Code: Alles auswählen
<db:connection-data>
<db:connection-resource xlink:href="sdbc:odbc:datenbank_name" xlink:type="simple"/>
<db:login db:is-password-required="false"/>
</db:connection-data>
<db:driver-settings db:system-driver-settings="" db:base-dn=""/>
Zum leichteren Editieren von content.xml habe ich ein paar Zeilenschaltungen eingefügt und drin lassen. Ich gehe davon aus, dass das keine Probleme macht.
LG Gerald
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.