Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: stitze am 15.03.05 - 13:41:00

Titel: NotesDocumentCollection Initalisieren
Beitrag von: stitze am 15.03.05 - 13:41:00
Hallo,

ich brauche eine leere NotesDocument Collection um während des Programmablaufes Dokumente über die AddDocument(NotesDocumen) Mehtode der Collection hinzufügen zu können.
Kann mir eine sagen, wie ich die Colelction Initialisieren muss damit dies möglich ist?
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: dirk_2909 am 15.03.05 - 13:43:39
Hallo


so:

Dim collDocs as NotesDocumentCollection

Set collDocs = view.GetAllDocumentsByKey( "" )


Dirk
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: diali am 15.03.05 - 13:44:49
ein New gibt es leider nicht, aber mach doch einen Search, FTSearch mit einem Query, der Dir 0 Dokumente zurückgibt.

Oder per GetAllDocumentsByKey usw.
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: stitze am 15.03.05 - 13:48:24
Jo, danke so funktioniert das  ;)
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: TMC am 15.03.05 - 19:47:51
Weitere Möglichkeiten siehe auch hier:
http://www.atnotes.de/index.php?topic=17860.0

Problematisch kann allerdings sein, dass die Add-Methode nicht zuverlässig am Ende der Collection ein neues Doc einfügt. Wenn man sich auf die Sortierung verlassen muss: Finger weg, hier sollte man dann besser mit einem Array aus NotesDocuments arbeiten.
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: ata am 17.03.05 - 21:11:04
... die Idee mit dem Search ist nicht so gut - mach das mal in einer DB mit mehreren 100.000 Dokumenten, die müssen auf die Eignung untersuchgt werden.

Ich mache es mit der Collection für Profildokumente einer Datenbank => NotesDatebase.GetProfileDocumentCollection - oder ähnlich - und einem Maskennamen, den es nicht gibt, wie zum Beispiel "dummy" - das ist nach meiner Erfahrung deutlich schneller, denn Profildokumente liegen bei Notes permanent im Cache vor und müssen nicht erst gesucht werden...

ata
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: Semeaphoros am 17.03.05 - 21:20:52
Wobei man mit dem Namen auch aufpassen muss, man kann Profildokumente problemlos hinterlegen mit einem Namen, der keiner Maske entspricht
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: ata am 17.03.05 - 23:35:41
... mit dc.Count kannst du feststellen, daß die Collection leer ist. Dokumente die der Collection dann hinzugefügt werden sind keine Profildokumente und werden es dadurch auch nicht -  wo siehst du ein Problem?

Toni
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: koehlerbv am 17.03.05 - 23:54:10
Anton, ich denke mal auch, Du würdest auch keinen anzunehmenden Namen für ein ProfileDoc verwenden - und die ProfileDoc-Namen, auch wenn sie ja nicht Masken entsprechen müssen, sind ja den Programmierern bekannt.

Ergo - so, wie Du es schon angedeutet hast:
NotesDatabase.GetProfileDocCollection ("D-IES-N&NAMN_GIB/NIHT_!"

Wenn dann coll.Count > 0 ist, dann kann man das abfangen und den sabotierenden Co-Prgrammierer die Zähne nach aussen stülpen  ;D Ein wohl mehr als unwahrscheinlicher Fall, er dann auch noch abgefangen werden kann.

Da der von Anton genannte Zugriff auf eine "Nix-Collection" einer der schnellsten Verfahren ist für den Zugriff auf Dokumente (allerdings: ProfileDocs sind erst ab Verwendung im Cache, Toni, vorher nicht. Aber sie stehen in einer eigenen DB-internen Table ...), verstehe ich den Einwurf von Herrn Augustiny nicht so richtig.

Bernhard
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: Semeaphoros am 18.03.05 - 06:45:07
Genau, Anton, man sollte noch überprüfen, ob die Collection dann wiklich leer ist, dann ist es kein Problem.
Titel: Re: NotesDocumentCollection Initalisieren
Beitrag von: ata am 18.03.05 - 14:36:56
@Jens
... ich habe bei mir nachgeschaut - ich habe es abgefangen über den Count - alles im reinen...

@Bernhard
... danke für den Hinweis mit dem Cache - ich ging bisher davon aus, daß Profildokumente mit dem Öffnen der DB bereits im Cache sind...

schönes - sonniges Wochenende - geniesst die Sonne...  :-)))

Toni