Autor Thema: Datenbankinterne Feldtabelle korrigieren?  (Gelesen 2098 mal)

Offline PLi

  • Frischling
  • *
  • Beiträge: 42
  • Geschlecht: Männlich
Datenbankinterne Feldtabelle korrigieren?
« am: 03.07.19 - 16:20:29 »
Hallo Zusammen,

ich habe eine Anwendung bei der in einer Maske Datumsfelder ohne Vorgabewert enthalten sind.
Leider speichert Notes Datumsfelder ohne Wert als Felder vom Typ Text.

Wenn ich nun über eine XPage eine Volltextsuche durchführe (z.B.: "([DateField]>20181114)") quittiert mir mein Dominoserver (9.0.1FP10 HF330) dies mit der Meldung
"Beim Ausführen der Suche ist ein Fehler aufgetreten.
NotesException: Notes error: Relational operators are not supported in text fields"

Eine Suche über ScanEz ergab, dass es in der Anwendung > 22k Dokumente gibt, bei denen das Feld "DateField" vom Typ Text ist.
In der Maske ist es aber als Feldtyp Date angegeben.

Das Problem tritt allerdings erst auf, seitdem ich den Dominoserver von FP4 aktualisiert und direkt danach dann einen compact -c über die Datenbank laufen lassen habe (den FT-Index hatte ich vorher gelöscht).

Also ich weiß inzwischen, dass der Domino Server die interne Feldliste einer Datenbank nur neu aufbaut, wenn man den FT-Index vor einem compact -c löscht.
Warum Domino diese Liste aber nicht anhand der Masken in der Datenbank erzeugt, bevor er sich die Dokumente anschaut, das konnte mir bisher noch niemand verraten.

Muss ich nun in jedes Dokument zuerst ein gültiges Datum in dieses Feld schreiben (z.B. @Created) bevor ich einen neuen Compact -c laufen lasse?
Hat jemand eine andere Idee, wie ich das repariert bekomme?
Ihr seid ja nur neidisch weil diese leisen Stimmen nur zu mir sprechen...

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Datenbankinterne Feldtabelle korrigieren?
« Antwort #1 am: 03.07.19 - 18:45:48 »
Das „Problem“ gibt es schon ewig. Leere DateTime items sind Vom Typ Text.
Setze den Default Wert auf 01/01/1970 und mache mit ScanEZ ein ComputeWithForm über die 22k docs.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Datenbankinterne Feldtabelle korrigieren?
« Antwort #2 am: 03.07.19 - 21:03:10 »
@eknori: beim ComputeWithForm wird aber nur ein Vorgabewert gesetzt, wenn das Feld noch nicht vorliegt, das ist hier nicht der Fall.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Datenbankinterne Feldtabelle korrigieren?
« Antwort #3 am: 03.07.19 - 21:16:53 »
Korrekt. Dann halt mit ScanEZ den ItemType und Inhalt entsprechend setzen.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline PLi

  • Frischling
  • *
  • Beiträge: 42
  • Geschlecht: Männlich
Re: Datenbankinterne Feldtabelle korrigieren?
« Antwort #4 am: 15.07.19 - 07:23:36 »
Dann sollten wir wohl bei unseren Datumsfeldern in der Anwendung generell einmal über Default-Werte nachdenken.
Vielen Dank
Ihr seid ja nur neidisch weil diese leisen Stimmen nur zu mir sprechen...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz