Seite 1 von 1

Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 16:41
von markus
Hallo!
Ich heisse Markus, bin neu hier und habe folgendes Problem: Beim Eintrag eines neuen Datensatzes in meine Tabelle erhalte ich aus mir völlig unerklärlichen Gründen eine Errormeldung. Manchmal kann ich 5 Datensätze eintragen, ein anderen mal aber nur einen. Nach dem schliessen der Fehlermeldung verschwindet dann der Inhalt sämtlicher Tabellen meiner Datenbank und ich muss diese neu starten. Nach dem Programmneustart sind dann aber auch die bis zum Fehler eingetragenen und gespeicherten Daten weg! Die Meldung sieht wie folgt aus:
Fehler beim Schreiben des aktuellen Datensatzes
S1000 General error java.lang.NullPointerException in statement [UPDATE "Pflanzenname" SET "Vorkommen" =? WHERE "ID"=?]

Da ich hier alleine nicht weiter komme, ich auch im Forum nichts fand, was mir weiter helfen könnte bitte ich Euch um Eure Hilfestellung.

(benutze Win 7 professional auf aktuellem Stand)
Danke im Voraus
Markus

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 17:09
von Freischreiber
Hallo Markus,

nur zur Sicherheit: ein 32-Bit-Java hast du auf deinem Windows installiert und unter Libreoffice angemeldet?
(Libreoffice: Extras - Optionen - Erweitert: Java-Laufzeitumgebung verwenden)

Dann mal unter Extras - SQL ausführen:
CHECKPOINT DEFRAG
und dann
SHUTDOWN COMPACT

Wenn das alles nichts hilft, kannst du vielleicht die (leere) Datenbank mal hier hochladen.

Gruß
Freischreiber

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 17:31
von markus
Hallo Freischreiber!
Vielen Dank für Deine rasche Hilfe. 32 bit Java habe ich installiert und in LO angemeldet (Oracle Corporation Version 1.8.0_51)
SQL Befehle habe ich ausgeführt, hilft leider nicht.
Bezüglich hochladen der Datenbank: Die Datenbank enthält schon ziemlich viele Daten, nehme einmal an, die Tabellen, Formulare sollen erhalten bleiben aber ohne Daten! Oder geht das auch anders?

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 17:43
von Freischreiber
Hallo Markus,

Tabellen und die Beziehungen zwischen ihnen sollte man sehen, und vielleicht ein paar Dummy-Datensätze. Ist schwierig, die Daten aus einer benutzten Datenbank zu kriegen, ich weiß.

Wart erst mal ab, bis einer der Gurus hier sich meldet, vielleicht gibt es ja noch eine Lösung ohne Hochladen.

Welche LO-Version hast du? Abstürze sind bei neuesten Versionen häufiger als bei älteren mit hoher dritter Ziffer.

Der häßliche Effekt von Datenverlusten bei Abstürzen kommt vor allem bei der internen HSQL-Datenbank vor (und da wohl ziemlich häufig). Dagegen hilft dauerhaft nur das Splitten der Datenbank (externe HSQL-Datenbank und Verbindung zu Base mit Datenbanktreiber).

Gruß und viel Glück
Freischreiber

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 17:58
von markus
LO Version 4.3
Die DB hat über 100 MB, da lösche ich wahrscheinlich lange :roll: , aber wenn es hilft :lol:
Ich warte mal, ob jemand noch eine Tipp hat, werde aber schon mal mit dem löschen beginnen.
Danke für Deine Hilfe

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 18:50
von F3K Total
Hi,
er SQL-Befehl zum Löschen aller Zeilen der Tabelle "Tabelle1" lautet

Code: Alles auswählen

Delete from "Tabelle1"
und kann über Extras/SQL... ausgeführt werden.
Nach dem Löschen nochmal

Code: Alles auswählen

Checkpoint defrag
komprimiert die Datenbank.
Gruß R

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 22:26
von markus
Hab die DB jetzt mal reduziert auf eine Tabelle, 1 Abfrage und ein Formular, jene, die Probleme machen. In der ganzen Datenbank habe ich 10 Tabellen, 14 Formulare und 8 Abfragen . Das ganze wird mit Makros von 3 Hauptseiten aus abgerufen, was aber keine Probleme bereitet, Makros laufen fehlerfrei.
Vielen Dank an die Unterstützer

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Fr 24. Jul 2015, 22:58
von F3K Total
Hi,
es ist keine gute Idee, Fotos in der eingebetteten HSQL Datenbank zu speichern, die geht immer kaputt.
Habe deine Datei so umgebaut, wie ich es machen würde:
In der Datenbank wird nur der Link zu den Fotos gespeichert, in jeweils einer VARCHAR Spalte. So hat die DB selbst nur noch 17 KB, vorher waren es 795 KB, weil die Bilder nicht mitgespeichert werden. Ausserdem habe ich die ID zu einer Autowert-Spalte gemacht, Siehe Anlage.

Es gibt zwar eine Möglichkeit, die Bilder innerhalb einer Datenbank zu speichern, ist aber bei weitem komplizierter:
Dazu müsstest du die HSQL DB extrahieren und als sogenannte Split-Datenbank mit Frontend und Backend laufen lassen. Wenn sie so geteilt ist, kann man z.B. auf die aktuelle Version HSQLDB 2.3.3 upgraden, oder z.B. MySql oder andere Datenbanken verwenden.

Gruß R

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Sa 25. Jul 2015, 11:31
von RobertG
Hallo *,

das gleiche Phänomen hatte ich gerade, weil ich zum Testen der Komprimierung über
CHECKPOINT DEFRAG und SHUTDOWN COMPACTeine große Tabelle mit Fotos machen wollte:

Nach Eingabe eines großen Bildes mit fast 8 MB kam die NullPointerException. Wenn ich eine andere Reihenfolge wähle und kleinere Bilder anschließend aufnahm schien es zu gehen - nur nach dem Schließen der Datenbank war alles weg. Auch wenn vom Speichern großer Fotos grundsätzlich abzuraten ist - eigentlich dürfte da keine Grenze entsprechender Art auftauchen.

Zu den Befehlen CHECKPOINT DEFRAG und SHUTDOWN COMPACT: Die Eingabe ist seit der Version LO 3.6 nicht mehr notwendig. Das wird beim Schließen der Datenbank für interne Datenbanken automatisch ausgeführt. In LO 3.5 war das noch nicht so.

Gruß

Robert

Re: Fehlermeldung bei neuem Datensatz

Verfasst: Sa 25. Jul 2015, 16:29
von markus
Vielen lieben Dank an Freischreiber und F3K Total für Eure Hilfestellung!