Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 30.01.03 - 10:59:34

Titel: Collection wieder leeren
Beitrag von: Don Pasquale am 30.01.03 - 10:59:34
Hallo Leute,

Ich habe mehrere Vorgänge die auf Collections
von ausgewählten Dokumenten zugreift.
Wenn der User aber nicht den Ordner wechselt, bleiben
die alten Dokumente in der Collection erhalten.

Wie löscht man nach Gebrauch eine Collection wieder ?

Ciao

Don Pasquale
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 30.01.03 - 11:05:54
@Don Pasquale,
Du brauchst nur ein collection.FTSearch() durchführen, mit dem Du nach einem Wert suchst, den es unmöglich geben kann!
( such doch zum Beispiel nach dem String "Stiefelchen & Kompasskalle")

Dann fliegen ja alle Docs, die diesen Text nicht enthalten, raus.
Und das dürften in diesem Falle alle sein.

Gruss
Thomas
Titel: Re:Collection wieder leeren
Beitrag von: Don Pasquale am 30.01.03 - 11:33:32
@Thomator:

Interessante Idee,
muss ich mal ausprobieren.
Wieviel zeit verbraucht dass denn, wenn die Collection vorher sehr gross
war ?

Ciao

Don Pasquale
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 30.01.03 - 11:37:03
@Don Pasquale
ich glaube, das kommt auf die Textmenge in den Dokumenten an, ich habs bei sehr grossen Collections aber noch nicht versucht...

Gruss
Thomas
Titel: Re:Collection wieder leeren
Beitrag von: Performance am 30.01.03 - 11:47:10
@Thomator
warum die Performance in den Keller ziehen ?

@Don
ein einfaches Set collection = Nothing  tut es auch



cu
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 30.01.03 - 11:53:02
@Performance
Du hast eben Deinen Namen nicht ganz umsonst... ;D

Wenns so einfach geht, is ja super.
Da muss ich jetzt mal schnell bei mir auch ein paar Änderungen vornehmen...

Grüße und Danksagungen
Thomas
Titel: Re:Collection wieder leeren
Beitrag von: Don Pasquale am 30.01.03 - 12:14:35
Performance : Der Name ist Programm


Wir danken recht herzlich
und sind begeistert !


Ciao

Don Pasquale
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 30.01.03 - 13:18:17
@Performance
der Spaß funktioniert bei mir nich! Guck mal:

Set nav = view.CreateViewNav
Set NVECol = Nothing
Set NVE = nav.GetFirst

und dann
   Set NVE = nav.GetNext(NVE)
                NVECol.AddEntry(NVE)

Wenn das funktioniert hätte, wär schön, aber NVECol wird nicht initialisiert. Folglich kann auch das AddEntry nicht funken...
Siehs´t Du einen Fehler?
Thomas

Titel: Re:Collection wieder leeren
Beitrag von: Performance am 30.01.03 - 13:26:15
Set NVECol = Nothing


erst deklarieren dann initialisieren - das hier ist kein C++ also forward Deklarationen.

cu
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 30.01.03 - 14:02:02
@Performance
Hab ich doch, 4872 Quellcodezeilen weiter oben steht Dim NVECol as NotesViewEntryCollection

Gruss
Thomas
Titel: Re:Collection wieder leeren
Beitrag von: Performance am 30.01.03 - 15:12:16
@Thomator

mit  set object = Nothing  wird das Objekt im Speicher "zerstört" bzw. das Programm kennt es nicht mehr.

also um ein Entry in die EntryCollection einzufügen muss das Objekt im Speicher vorhanden sein.
- du hast es sicher irgendwo in der x-ten Zeile initialisiert
    Set NVECol = view.GetAllEntriesByKey( "Hello again", False)
jetzt kannst du dem Objekt was hintzfügen mit
    NVECol.AddEntry(Entry)
- wenn das Objekt nicht mehr gebraucht wird löst du es wieder vom Programm scope
   Set NVECol = Nothing
- bei einem erneuten Gebrauch muss es wieder initialisert werden mit einem search oder get allentries


have a nice day
Titel: Re:Collection wieder leeren
Beitrag von: Thomator am 31.01.03 - 07:19:00
Hallo und guten Morgen,
@Performance:
dacht ich mir schon, also ist für das Erzeugen einer leeren Collection, mit der man dann auch arbeiten kann, doch notwendig, erst mal irgendwas reinzulesen und dann mit FTSearch oder so die Collection wieder zu leeren. Oder ist es aus Performance-Gründen  ;D besser, mit dem GetAllEntriesByKey("nicht vorhandener Wert", False) zu arbeiten? Hast Du da eine Ahnung?

cu
Thomas
Titel: Re:Collection wieder leeren
Beitrag von: Performance am 31.01.03 - 08:25:46
aus performance Gründen ist es schneller eine collection mit einem set nothing aus dem Speicher zu kicken als mit einer erneuten Suche in der view zu operieren.


cu