error S 1000 Gener error java.lang.NullPointException

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Grüßt Euch,

bin neu hier und möchte gleich sagen/schreiben: Ich bin eigentlich nur ein Anwender! Alles was in die Tiefer geht, ist für mich wie im Nebel stochern.

Schon seit einigen OO-Versionen habe ich eine Datenband angelegt. Aus mit nicht nachvollziehbaren Gründen kommt immer wieder dieser Fehler: S 1000 Gener error java.lang.NullPointException

Er ist echt lästig, weil dann die letzten Daten nicht gespeichert werden, ich das Programm komplett (also OO) schließen muss und neu aufrufe.

Momentan Arbeite ich mit Apache Open Office 4.1.1 auf Mac-Basis OS X El Capitan 10.11.4

Der Fehler trat aber schon auf, als alles noch auf meinen MS-PC lief.

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,

prinzipiell kannst Du also schon Daten eingeben, d.h. Deine Datenbankverbindung funktioniert?
Wenn Du schreibst "nur Anwender", dann nehme ich an, die DB enthält auch keine Makros.
Wann tritt die Exception auf: bei Eingaben im Formular oder auch bei Eingaben in eine Tabelle direkt?
Hast Du vielleicht Bilder von entsprechender Größe in der Datenbank?

Ohne Beispieldatenbank wird das vermutlich ein Stochern im Nebel. Kannst Du vielleicht eine Kopie Deiner Datenbank erstellen, diese von allen empfindlichen Daten leeren und mit ein paar Dummydaten hier hoch laden?

Vielleicht auch bei einer Kopie der Datenbank einmal unter Extras → SQL den Befehl
SHUTDOWN COMPACT
ablaufen lassen, anschließend die DB schließen und wieder öffnen. LO macvht so etwas standardmäßig seit der Version 3.6 bei jedem Schließen der Datenbank. Ob das bei AOO auch der Fall ist kann ich nicht sagen.

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Grüß Dich Robert,

soweit es geht, versuche ich auf die Schnelle Antworten zu geben:

Daten kann ich ohne weiteres eingeben und sie werden auch gespeichert. Nur bei dem Datensatz, wo die Fehlermeldung erscheint, sind die Daten weg.

Makros? Weiß nicht, was Du hier meinst.
Ich habe ein Eingabeformular kreiert, über das ich die Daten eingebe.

Der Fehler tritt bei der Eingabe ins Formular, in die Tabelle und auch bei einer Abfrage auf.

Bilder habe ich in der Datenbank integriert. Die Größe habe ich dabei nicht bearbeitet. Die Bilder sind eine Bestandsdokumentation und ich möchte sie auch für Beiträge in Foren, Fachzeitschrift, usw. verwenden.

Beispieldatenbank hochladen?? Jetzt wird es schwierig! Wie geht das?

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,
Schalk23 hat geschrieben: Daten kann ich ohne weiteres eingeben und sie werden auch gespeichert. Nur bei dem Datensatz, wo die Fehlermeldung erscheint, sind die Daten weg.
Das heißt, dass die Ursache mit dem aktuellen Datensatz zusammenhängt, nicht also ein grundsätzlicher Fehler bei allen Datensätzen ist.
Schalk23 hat geschrieben: Makros? Weiß nicht, was Du hier meinst.
Das sind selbst geschriebene automatisch ablaufende Programmanweisungen. Wenn Du die Datenbank selbst erstellt hast und nicht weißt, was ein Makro ist, dann hast Du damit auch noch nie etwas zu tun gehabt ...
Schalk23 hat geschrieben: Der Fehler tritt bei der Eingabe ins Formular, in die Tabelle und auch bei einer Abfrage auf.
Bilder habe ich in der Datenbank integriert. Die Größe habe ich dabei nicht bearbeitet. Die Bilder sind eine Bestandsdokumentation und ich möchte sie auch für Beiträge in Foren, Fachzeitschrift, usw. verwenden.
Jetzt versuche ich einmal zu unterscheiden: Im Formular könnte ich mir das bei der Eingabe von Bildern vorstellen. Da kommt diese Exception recht schnell, wenn die interne Datenbank zu viele große Bilder enthält. Beim nächsten Öffnen ist es dann wieder möglich, einen oder auch mehrere Datensätze einzugeben. Dann taucht die Exception erneut auf. Die beste Maßnahme ist hier, die Bilder in einem Verzeichnis außerhalb der Datenbank liegen zu lassen. Das geht genauso gut, wenn eben mit dem Eingabefeld für das Bild ein Textfeld der Datenbank verbunden wird. Dann wird dort der Pfad zum Bild gespeichert und das Bild angezeigt.
Du schreibst allerdings, dass die Exception auch bei einer Tabelle auftaucht. Und da kannst Du ja keine Bilder direkt eingeben. Deswegen dürfte an dieser Stelle nicht das Bild-Problem bestehen.

Bilder in der Größe eines Digitalkamerabildes solltest Du nicht in der Datenbank abspeichern. Außerdem kommst Du ohne SQL-Kenntnisse gar nicht mehr an die Bilder ran, wenn Du sie in externen Programmen weiter nutzen willst (Foren, Fachzeitschrift ...).

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Grüß Dich Robert,

was ich mit den Datenbankbildern meinte: Ich habe einen eigenen Ordner, von dem ich die Bilder in das Formular hineinkopiere. Das Feld habe ich als Bildfeld definiert und wenn ich draufklicke öffnet sich der Dialog, von welchem Ort ich das Bild kopiere.

Deine Beschreibung der Exeption trifft ziemlich genau zu. Eigentlich arbeite ich, wegen der Dateneingabe fast nur mit dem "Formular". Vor zwei Tagen habe ich aber versucht unterschiedliche Abfragen zu kreieren und dabei trat der Fehler erneut auf. Vielleicht, weil ich bei der Auswahl die Bilder mit aussuchte, in der Hoffnung, diese bei dem Abfrageergebnis aus zu sehen. Leider war das nicht der Fall.

Es handelt sich um eine Datenbank meiner kleinen Münzsammlung, wo die Daten der Münze mit den Bildern zusammen gehören. Deswegen bin ich auch mit dem Abfrageergebnis ohne Bild nicht zufrieden.

Zusammenfassung für mich: Ich sollte künftig verkleinerte Bilder in die Datenbank einpflegen, bzw. die alten Bilder durch kleinere Ersetzen. Welche Größe wäre da denn optimal? Mir genügt eine optische Größe von 7 x 7 cm auf dem Bildschirm. Die Qualität sollte so sein, dass auch Einzelheiten noch gut zu erkennen sind und ich keinen Augenkrebs wegen der sichtbaren Pixel bekomme.

Vielen Dank und viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,

die Auflösung hängt natürlich von der Auflösung Deines Bildschirmes ab. Mein Bildschirm hier ist etwas älter, also nicht so ein Pixelmonster wie neuerdings immer mehr in Mode kommen. Die Auflösung beträgt 96 Pixel pro Zoll. Ein Zoll hat 2,54 cm. Das sind dann für ein Bild von 7 cm Breite auf dem Bildschirm 265 Pixel. Für ein quadratisches Bild benötigst Du dann ca. 70000 Pixel.
Wenn Du stattdessen ein Foto einer Spiegelreflexkamera nimmst (auch hier kein aktuelles Modell, sondern eine Nikon D90), dann hat dieses Foto insgesamt 12212224 Pixel. Du kannst also von der Pixelzahl her ca. 174 Bilder der Größe 7cm * 7cm statt eines Fotos mit einer älteren Digitalkamera speichern.
Wenn Du einen hochauflösenden Bildschirm hast, dann musst Du die Werte gegebenenfalls ändern.

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Grüß Dich Robert,

herzlichen Dank für Deine Antwort. Werde mal ein paar Versuche machen.

Darf ich bezüglich meiner vorherigen Frage nochmal nachhaken? Gibt es die Möglichkeit einer Abfrage, bei der ich auch die Bilder sehen kann? Oder wenigstens mit einem Klick, die Bilder sichtbar werden.

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,

in einer Abfrage kannst Du keine Bilder sehen. Du kannst aber die Abfrage als Grundlage eines Formulars machen. Dort gibt es ja das entsprechende Kontrollfeld, dass zu dem aktuellen Datensatz Bilder anzeigt. Auch in Formularen kannst Du alle Möglichkeiten einer Abfrage nutzen.

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

O. K. Das ist jetzt neu für mich!

Habe mit den Bildern ein wenig experimentiert. Die Bilder hat Gimp wohl schon verkleinert auf ca. 450 KB (je nach Zuschnitt). Ist das zu groß für Base? Falls ja, was sollte der ungefähre Zielwert sein?

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,

ich würde das Bild einfach in GIMP einmal öffnen und dann bei der Einstellung 100% am Bildschirm betrachten. Dann siehst Du, wie groß das Bild tatsächlich erscheint. Wenn ich Fotos auf die von Dir angestrebte Größe verkleinere, so haben die ca. 70kB. Das ist also noch deutlich kleiner.
Wenn Du sowieso an die Bilder dran gehst: Warum änderst Du das nicht dahingehend, dass die Bilder außerhalb in einem Verzeichnis unterhalb der Datenbank liegen bleiben und Du nur den Pfad abspeicherst?

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Danke für den Tipp, Robert. Ich werde das mit dem Pfad einmal versuchen. Es ist zwar dann nicht so, wie ich es eigentlich will ... Es soll quasi eine "Karteikarte" für jede Münze oder jeden Münztyp eines Gebietes sein.

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,

für die Karteikarte ist es doch völlig egal, ob das Bild außerhalb oder innerhalb der Datenbank liegt. Das Bild wird genauso angezeigt. Du musst eben nur statt eines Feldes des Typs "Longvarbinary" in der Tabelle ein Feld des Typs "Varchar" wählen. Dieses Feld wird über das grafische Kontrollfeld bestückt. Die Grafik selbst wird weiter angezeigt.

Eine Beispieldatei mit der Einbindung externer Bilder (und anderer Dokumente) habe ich auf meiner Homepage liegen:
http://robert.familiegrosskopf.de/base_ ... Bilder.zip. Da sind zwar einige Makros mit eingebaut, aber die haben für die direkte Anzeige im Formular keine Bedeutung. Die Makros dienen nur dazu, die Bilder mit einem externen Anzeigeprogramm anzusehen.

Wegen eines in dem Paket enthaltenen Fotos ist die DB hier für den Anhang leider zu groß.

Gruß

Robert
Schalk23
**
Beiträge: 20
Registriert: So, 01.05.2016 13:21

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von Schalk23 »

Grüß Dich Robert,

wie soll ich bei der Neugestaltung vorgehen?

Am liebsten würde ich eine neue Datenbank anlegen und die Daten dann hineinkopieren. Dummerweise habe ich nämlich bei der alten DB den Primärschlüssel mit der Inventarnr. der Münze gleichgesetzt und mir dabei ein Bein gestellt. Ich kann nur fortlaufend in die DB eingeben und keine "jüngere" Nr. vergeben.

Die Bilder habe ich schon mal verkleinert auf 250 x 250 Pixel.

Viele Grüße

Schalk23
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: error S 1000 Gener error java.lang.NullPointException

Beitrag von RobertG »

Hallo Schalk23,
Schalk23 hat geschrieben: Am liebsten würde ich eine neue Datenbank anlegen und die Daten dann hineinkopieren. Dummerweise habe ich nämlich bei der alten DB den Primärschlüssel mit der Inventarnr. der Münze gleichgesetzt und mir dabei ein Bein gestellt. Ich kann nur fortlaufend in die DB eingeben und keine "jüngere" Nr. vergeben.
Den Zusammenhang verstehe ich nicht ganz. Wenn Du für die Münze eine Inventarnummer hast, dann ist das doch eine unverwechselbare Nummer, die als Primärschlüssel geeignet ist. Was hat diese Nummer mit einer fortlaufenden Nummer zu tun, die Du (vermutlich) über einen AutoWert erstellt hast? Und wozu willst Du statt der fortlaufenden Nummer eine jüngere (kleinere) Nummer eingeben?

Gruß

Robert
Antworten