Das Notes Forum

Domino 9 und frühere Versionen => ND9: Administration & Userprobleme => Thema gestartet von: PLi am 03.07.19 - 16:20:29

Titel: Datenbankinterne Feldtabelle korrigieren?
Beitrag von: PLi 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?
Titel: Re: Datenbankinterne Feldtabelle korrigieren?
Beitrag von: eknori 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.
Titel: Re: Datenbankinterne Feldtabelle korrigieren?
Beitrag von: jBubbleBoy 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.
Titel: Re: Datenbankinterne Feldtabelle korrigieren?
Beitrag von: eknori am 03.07.19 - 21:16:53
Korrekt. Dann halt mit ScanEZ den ItemType und Inhalt entsprechend setzen.
Titel: Re: Datenbankinterne Feldtabelle korrigieren?
Beitrag von: PLi 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