Datenbank-Speicherung bei Änderungen?

Hallo miteinander,

kann es sein, dass eine LibO-Datenbank *.odb (LibO 3.3.1 auf WinXP
SP3) Änderungen an Datensätzen nicht immer gleich in der *.odb-Datei
speichert?

Ich kannte es aus früheren Zeiten IIRC von Access her so, dass alle
Änderungen an einem Datensatz *spätestens beim Verlassen dieses*
*Datensatzes* auch gleich in die *.mdb-Datenbank-Datei gespeichert wurden.

Unter LibO (aber wohl auch schon unter OOo) Base scheint das aber
nicht so zu sein ... denn nach einem Rechnerabsturz waren alle rd. 50
in den letzten Stunden erfassten Datensätze nach dem Neustart und der
Wiederherstellung der Datei NICHT mehr vorhanden. Es wurde lediglich
der Stand der Datenbank vom letzten normalen Schließen am Vortag
wieder hergestellt.

Dummerweise kann man aber nach Änderungen in einem Datensatz - egal ob
per Formular oder direkt in der Tabelle - die Datenbank auch gar nicht
explizit speichern: der entsprechende Befehl und das Symbol sind grau
und lassen sich nicht betätigen, was ja zusätzlich noch die Vermutung
nährt, dass die Änderung schon automatisch beim Datensatz-Verlassen
gespeichert wurde, oder? Stattdessen aber erfolgt die Speicherung
aller seit dem letzten Öffnen vorgenommenen Änderungen (ohne die sonst
in solchen Fällen übliche "Änderungen -> speichern?" Frage) einfach
beim nächsten Schließen.

Ist das generell so oder habe ich hier nur irgendeine Einstellung
übersehen? Die Datenbank wurde übrigens mal unter OOo-V2 angelegt -
falls das noch wichtig sein sollte.

Andererseits muss LibO aber die zwischenzeitlich vorgenommenen
Änderungen ja irgendwo zwischenspeichern - nur wo?

Über sachdienliche Hinweise freut sich wie immer ...

Franklin Schiftan

Hallo Franklin,

ich bin nun nicht der Base Experte. Aber HSQL ist eine Hauptspeicher SQL
Datenbank. Soweit ich das weiß, werden alle Datensätze bei Start in den
Speicher geladen und dort auch verwaltet. Schmiert die DB oder der
Rechner ab, dann gehen diese Dinge halt verloren.

Das ist aber nur das, was ich grob dazu weiß. Ich denke die DB Experten
können Dir das besser hier erläutern.

Hallo miteinander,

kann es sein, dass eine LibO-Datenbank *.odb (LibO 3.3.1 auf
WinXP SP3) Änderungen an Datensätzen nicht immer gleich in der
*.odb-Datei speichert?

Ich kannte es aus früheren Zeiten IIRC von Access her so, dass
alle Änderungen an einem Datensatz *spätestens beim Verlassen
dieses* *Datensatzes* auch gleich in die *.mdb-Datenbank-Datei
gespeichert wurden.

Unter LibO (aber wohl auch schon unter OOo) Base scheint das
aber nicht so zu sein ... denn nach einem Rechnerabsturz waren
alle rd. 50 in den letzten Stunden erfassten Datensätze nach dem
Neustart und der Wiederherstellung der Datei NICHT mehr
vorhanden. Es wurde lediglich der Stand der Datenbank vom letzten
normalen Schließen am Vortag wieder hergestellt.

Dummerweise kann man aber nach Änderungen in einem Datensatz -
egal ob per Formular oder direkt in der Tabelle - die Datenbank
auch gar nicht explizit speichern: der entsprechende Befehl und
das Symbol sind grau und lassen sich nicht betätigen, was ja
zusätzlich noch die Vermutung nährt, dass die Änderung schon
automatisch beim Datensatz-Verlassen gespeichert wurde, oder?
Stattdessen aber erfolgt die Speicherung aller seit dem letzten
Öffnen vorgenommenen Änderungen (ohne die sonst in solchen Fällen
übliche "Änderungen -> speichern?" Frage) einfach beim nächsten
Schließen.

Ist das generell so oder habe ich hier nur irgendeine
Einstellung übersehen? Die Datenbank wurde übrigens mal unter
OOo-V2 angelegt - falls das noch wichtig sein sollte.

Andererseits muss LibO aber die zwischenzeitlich vorgenommenen
Änderungen ja irgendwo zwischenspeichern - nur wo?

Über sachdienliche Hinweise freut sich wie immer ...

Franklin Schiftan

Hallo Franklin,

ich bin nun nicht der Base Experte. Aber HSQL ist eine
Hauptspeicher SQL Datenbank. Soweit ich das weiß, werden alle
Datensätze bei Start in den Speicher geladen und dort auch
verwaltet. Schmiert die DB oder der Rechner ab, dann gehen diese
Dinge halt verloren.

Aber umso dringender wäre doch gerade dann die Möglichkeit, nach jeder
Änderung das Speichern auf der Platte z.B. per Klick auf das
Speichern-Icon oder per <strg><s> zuzulassen, oder nicht?

Das ist aber nur das, was ich grob dazu weiß. Ich denke die DB
Experten können Dir das besser hier erläutern.

Danke trotzdem für deine Antwort.

.... und tschüss

            Franklin

Hallo Franklin,

kann es sein, dass eine LibO-Datenbank *.odb (LibO 3.3.1 auf WinXP
SP3) Änderungen an Datensätzen nicht immer gleich in der *.odb-Datei
speichert?

Tatsächlich wird der Inhalt der Datenbank aus dem *.odb ausgepackt und
dann im Speicher weiter bearbeitet. Vor allem das Aus- und Einpacken ist
es, was die interne Datenbank hier sehr anfällig macht. Dieses Verhalten
haben alle OpenOffice-Base-Datenbanken, die auf die interne Datenbank
aufbauen.

Größere Datenbanksicherheit hast Du, wenn Du die eigentliche Datenbank
außerhalb der *.odb-Datei betreibst. Dies geht auch mit der HSQLDB -
selbst mit dem LibreOffice beiliegenden jar-Paket.

Ich habe einmal eine Anleitung dafür ins Netz gestellt:

http://robert.familiegrosskopf.de

Hier "OOo - HSQLDB" anwählen.

Wichtig ist die Anmerkung, nicht mit einer anderen HSQLDB-Version zu
arbeiten.

Gruß

Robert

Tatsächlich wird der Inhalt der Datenbank aus dem *.odb ausgepackt
und dann im Speicher weiter bearbeitet. Vor allem das Aus- und
Einpacken ist es, was die interne Datenbank hier sehr anfällig
macht. Dieses Verhalten haben alle OpenOffice-Base-Datenbanken,
die auf die interne Datenbank aufbauen.

Größere Datenbanksicherheit hast Du, wenn Du die eigentliche
Datenbank außerhalb der *.odb-Datei betreibst. Dies geht auch mit
der HSQLDB - selbst mit dem LibreOffice beiliegenden jar-Paket.

Ich habe einmal eine Anleitung dafür ins Netz gestellt:

http://robert.familiegrosskopf.de

Hier "OOo - HSQLDB" anwählen.

Danke, das werd ich mir mal in Ruhe zu Gemüte führen.

Aber dennoch an dieser Stelle noch mal die Frage, warum einem nicht -
gerade wenn ansonsten lediglich im RAM gearbeitet wird - nicht auch
per aktiviertem Speicher-Button die Möglichkeit gegeben wird, einfach
und schnell zwischendurch das Speichern und Packen ins Dokument
auszulösen? Warum muss man dazu immer erst diese umständlichen
Schritte des Alles-schließen und Hinterher-wieder-öffnen gehen? Das
will mir irgendwie nicht in den Kopf, warum die Programmierer gerade
in dieser Situation das Zwischenspeichern verbieten.

Wichtig ist die Anmerkung, nicht mit einer anderen HSQLDB-Version
zu arbeiten.

Robert

.... und tschüss

            Franklin

Hallo verehrter Herr Kollege,
da wird beim DL wohl was falsch gelaufen sein. Wiederholen !?!
Ich habe derartige Schwierigkeiten nicht. Auf meinen Rechnern arbeiten verschiedene Office-Versionen ( SO7/9; OO 3.0 ;LO 3.3.) und über all bleiben die genannten Eintragungen erhalten und Sicherheitskopien werden auch gefertigt.
MfG! JoLa.