Hallo Robert

Robert Großkopf schrieb:
Hallo Ernst, hallo Andreas,

mit den Jahreszahlen gibt es natürlich keine Probleme, wenn die Datenbank explizit diesen Datentyp besitzt (ist bei MySQL der Fall nicht aber bei HSQLDB). Bei MySQL könnte dann die zweistellige Angabe ausreichen. Das würde übersetzt in 1970-2069.

Da es das bei HSQLDB nicht gibt
( http://hsqldb.org/doc/guide/ch09.html )
sehe ich keine Chance, so etwas im Datenbankentwurf zu erledigen. Ich wüsste nicht, wie ich ein Minimum und ein Maximum entsprechend für ein Tabellenfeld im Entwurf vordefiniere - lasse mich aber gerne eines Besseren belehren.

Ich gehe davon aus, dass ich diese Sache nicht mit dem Datenbankentwurf erledigen kann sondern die Eingabe im Formular beeinflussen muss. Das bedeutet entweder eine Beschränkung im Eingabeformular ( Das geht ja bei numerischen Feldern ganz passabel - zwingt allerdings die benutzende Person bei Fehleingaben zu der Geduld, wirklich alles 4-stellig zu schreiben.) oder aber mittels eines zweistelligen Feldes und anschließender Auswertung desselben mit einem Makro und schreiben des entsprechenden vierstelligen Wertes in die Tabelle.
IMHO siehst Du das richtig. Es gibt aber ein "Gegenbeispiel": Access kennt im DB-Entwurf unter "Feldeigenschaften" die Eigenschaft "Gültigkeitsregel". Hier kannst Du sehr elegant eine Bedingung formulieren; so würde etwa "> 1900 UND <= 2100" in einem als Ganzzahl deklarierten Feld "Jahr" bei einer Eingabe eben diese auf die beiden Grenzen 1900 bzw. 2100 testen und mithin nur Jahrzahlen des 20. und 21. Jahrhunderts zulassen. In einem separaten Feld kann man eine Meldung hinterlegen, die erscheint, wenn der Benutzer eine falsche Dateneingabe macht - also genau so, wie man es in Calc handhaben kann: Daten - Gültigkeit ... Interessanterweise scheint der gleiche Ansatz in Base - wo er wesentlich nützlicher wäre - nicht implementiert zu sein, oder ich habe was übersehen. Nur in Formularfeldern ist sowas möglich - was allerdings wiederum für Formulare und gegen eine Direkteingabe in die Tabelle spricht 8-) . Wie Du richtig schreibst gibt es mehrere Lösungsmöglichkeiten - hängt wie immer von den Vorlieben und - v.a.! - vom Können des Entwicklers ab, was er schliesslich benutzt.

Ich halte im übrigen die Sache mit der zweistelligen Jahrzahl und der "automatischen Übersetzung" in eine vierstellige Jahrzahl, wie Du sie eingangs erwähnst, für eine sehr gefährliche Angelegenheit. Genau diese Konvention hat uns den Y2k-Bug bzw. das Y2k-Problem beschert, und damit einige schlaflose Nächte und Zitterpartien für CIO und andere Verantwortliche. Während man damals als Ursprung noch Speicherknappheit begründet ins Feld führen konnte, sollte man heute Jahrzahlen schlicht und ergreifend vierstellig eingeben und speichern: Speicher it zu billig geworden, um nochmals eine Zitterpartie zu riskieren.

Freundlich grüsst

Ernst


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org

Reply via email to