Domino 9 und frühere Versionen > Entwicklung
Leere NotesDocumentCollection: Wie macht Ihr das?
Semeaphoros:
Na ja, ich selber würde in diesem Falle eher eine Liste oder einen Array of Variants verwenden, worin dann die betroffenen Dokumente abgelegt sind. Braucht zwar wahrscheinlich mehr Memory als eine DocColl (ist aber nicht sicher), wobei das bei den heutigen Maschinen nun wirklich kein Problem ist. Eine weitere Variante wäre eine Linked-List, wobei man dabei am besten mit einer Custom-Class OO-mässig dahintergehen sollte.
Semeaphoros:
Noch etwas zu Beispiel 2:
sortiert ist eine DocColl per Definition nur, wenn sie das Resultat eines FT-Search ist, sprich, eine DocColl in dieser Situation zu verwenden ist Spielen mit dem Feuer, denn die ADD-Methode garantiert keine bestimmte Reihenfolge der Dokumente, von daher gesehen würde ich mich eh nicht drauf verlassen, Code, der sich auf die Reihenfolge in einer DocColl verlässt, könnte in zukünftigen Versionen brechen.
TMC:
Sehr interessanter Einwand, Jens, das hatte ich so noch nicht bedacht.
R6.5er Designerhilfe sagt übrigens das hier:
--- Zitat ---AddDocument method
For sorted collections, the document will be appended. For unsorted collections, the document will be inserted using an internal algorithm. Sorted collections include all ViewEntryCollections and DocumentCollections created from FTSearch (including DocumentCollections modified by calling the FTSearch method on the collection). All other DocumentCollections are unsorted.
--- Ende Zitat ---
Semeaphoros:
Ok, da habe ich die Collections, die man aus einer ViewEntryCollection zieht, übersehen, ansonsten bestägtigt Dein Zitat das Gesagte. Unter Umständen geht das sogar noch weiter, indem die Reihenfolge auch bei beliebigen anderen Operationen verändert werden kann, sie ist ja eben gerade nicht garantiert. Ausserdem wird durch die Add-Methode bei einer sorted collection das Dokument ohne Rücksicht angehängt und nicht einsortiert, damit sind DocColls definitiv unbrauchbar, wenn man eine stabile Sortierung braucht.
Simon Dotschuweit:
Hm ich greif den Thread mal auf, weil er ganz gut zu meiner Situation passt:
Also ich möchte gerne ein Top 25 Liste in meine KursDB integrieren, da stehen also die 25 besten Kurse (Anhand des Score feldes 0 - 100) drin. Das ganze wollte ich so aufziehen:
Eine versteckte View mit den kurs dokumenten und einer spalte mit dem score feld, absteigend sortiert. Daraus ziehe ich mir aus dem backend dann die kurse also mit view.GetFirstDocument etc. Und dann wollte ich eine leere DocumentCollection solange mit den Dokumenten füllen, bis mein counter 25 erreicht hat. Damit wird über doccol.putallinfolder("ordner") dann der Top 25 Ordner gefüllt - fertig.
Achja und das ganze wird jedesmal ausgeführt, wenn der score von einem Kurs verändert wird.
Aber jetzt hat mich die Warung von Jens aufhorchen lassen:
--- Zitat von: Semeaphoros am 29.08.04 - 14:37:58 --- damit sind DocColls definitiv unbrauchbar, wenn man eine stabile Sortierung braucht.
--- Ende Zitat ---
Gäbe es denn bei meinem Problem eine Alternative, die die Sortierung der Dokumente nicht verändert?
Thx
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln