Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gravedigger am 10.02.04 - 09:09:58

Titel: Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:09:58
Guten Morgen,

wie kann man ein Feld löschen, welches die Größe von 32k überschritten hat?

Danke für eure Antworten.
Titel: Re:Feld zu groß zum Löschen
Beitrag von: ata am 10.02.04 - 09:10:39
... mit einem Agent

FIELD Feldname := @DeleteField

ata
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:16:26
Geht leider nicht.    :-\

Fehlermeldung: "Field is too large"
Titel: Re:Feld zu groß zum Löschen
Beitrag von: ata am 10.02.04 - 09:18:15
... wann bekommst du diese Meldung? Bist du noch im geöffneten Dokument?

ata
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:19:52
Ich hake das Dokument in einer View an und führe den Agenten aus.
Das Dok lässt sich nichtmal öffnen.
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Glombi am 10.02.04 - 09:27:25
Probier es mal mit Script:

dim session as New NotesSession
dim db as NotesDatabase
set db = session.CurrentDatabase
dim dc as NotesDocumentCollection
set dc = db.UnprocessedDocuments
dim doc as NotesDocument
set doc = dc.GetFirstDocument
call doc.RemoveItem("Feldname")
call doc.Save(true,true,true)


Das ganze in einem Agent,der über gewählte Dokumente läuft.

Andreas
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:30:02
Geht leider auch nicht.   :-[
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:37:48
Problem gelöst.
Lösung:

>>>START<<<
Try

load compact -c -i -D {filepath}

This compacts with
-c = copy
-i = ignore errors
-D = delete view indexes
>>>ENDE<<<
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Glombi am 10.02.04 - 09:38:55
Du kannst Du per Script ein neues Dokument erstellen und aus dem fehlerhaften alle Felder - bis auf das defekte  - kopieren.
In etwa so:

dim session as New NotesSession
dim db as NotesDatabase
set db = session.CurrentDatabase
dim dc as NotesDocumentCollection
set dc = db.UnprocessedDocuments
dim doc as NotesDocument
set doc = dc.GetFirstDocument

dim newdoc as NotesDocument
set newdoc = db.CreateDocument

'Setze Felder
newdoc.Form = doc.Form(0)
newdoc.Feld1 = doc.Feld1
newdoc.Feld2 = doc.Feld2
.. ... ... hier dann alle Felder ...

call newdoc.Save(true,true,true)

Andreas


Ergänzung: Ich habe leider Deine Lösung zu spät gesehen...
Was hat denn der compact mit dem Dokument / Feld gemacht ?
Titel: Re:Feld zu groß zum Löschen
Beitrag von: Gravedigger am 10.02.04 - 09:52:14
Ich sags mal ganz laienhaft: "Er hat die Felder wieder klein gemacht."