Domino 9 und frühere Versionen > ND6: Entwicklung

NotesDocumentCollection

(1/2) > >>

bikerboy:
Hallo ich mal wieder,

Heute mit ganz  neuen Problemstellung. Ich habe hier folgenden Code :


--- Code: ---
Dim colSearch as NotesDocumentCollection
Dim forCollection as NotesDocumentCollection

Set colSearch = dbDocHouse.AllDocuments
Call colSearch.FTSearch("form",0)


--- Ende Code ---

Bis jetzt alles ganz easy und es funktioniert. (Was mich auch schon gewundert :D)

So nun erstmal die Erklärung bevor ich den Code Präsentiere. Ich habe eine Schleife die immer wieder mit einer Collection arbeiten soll. Ich will aber diese Collection nicht in jedem Durchlauf neu zusammenstellen. Stichwort Laufzeit.


--- Code: ---Set forCollection = collection

--- Ende Code ---

So dachte ich, dass ich quasi eine Konstante habe die sich nicht verändert und ich einfach nach jedem Durchlauf die forCollection mit den Werten fülle. Nun wende ich im Verlauf ein FTSearch auf die forCollection an. Aber das Ergebnis der wird auch auf die colSearch angewendet. Grosse Frage warum. Sind die Dinger mit der Zeile nun gekoppelt? Wenn ja wie kann ich das umgehen ?

Danke schonmal

umi:
Tja, da sind wir wieder mal beim Thema "POINTER".
Mit dem SET machst setzt Du nur den Pointer von colSearch zu forCollection oder was auch immer.
=> die Beiden Collections zeigen nach dem SET auf die gleiche Datenmenge => Du machst keine Kopie der Collection sondern nur der "Pointer".

bikerboy:
Hmm Pointer ???? kenne ich nicht. Soll es in C gegeben haben. Aber wenn ich die Dokumente alle in die andere Collection kopiert brauche ich ja genauso lange, oder ?

umi:
Vielleicht sagt Dir copy by Reference oder Copy by Value was oder vielleicht auch Deep Copy, naja egal.

Auf jedenfall würde ich mal die Performance einsparungen ignorieren und zuerst schauen das Dein Code funktioniert.

dirk_2909:
Um die Daten/Dokumente in einer Collection in eine andere Collection zu übertragen/kopieren, musst Du folgende Methode verwenden:


--- Code: ---Call notesDocumentCollection.AddDocument( document [, checkDups ] )
--- Ende Code ---

Dabei musst Du mit einer Schleife alle Dokumente verarbeiten, was natürlich KEINE Performanceverbesserung bedeutet!!

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln