Domino 9 und frühere Versionen > ND8: Entwicklung
StampAllMulti
(1/1)
CarstenB:
Hallo zusammen,
kann mir jemand sagen, wie die Methode StampAllMulti funktioniert. Ich verstehe dich Hilfe nicht ganz.
Wenn ich z.B. 2 Items in eine Collection schreiben will, lege ich dann ein neues Dokument mit diesen 2 Items an? Alle anderen items der Dokumente aus der Collection bleiben dann unberührt?
ghostmw:
Hi CarstenB,
--- Zitat ---StampAllMulti
--- Ende Zitat ---
macht genau folgendes.
Du gibst ihr als Parameter ein NotesDocument mit allen Items, die du in der DocCollection setzen willst.
Wenn der Datentyp im Zieldokument eines Items nicht passt, wird das betreffende Item im Zieldokument gelöscht und neu gesetzt.
Sind die Items im Zieldokument nicht da, werden sie angelegt.
Der Datentyp ist immer der vom Parameter-Dokument.
Also => es dürfen in dem Sourcedokument nur die Items enthalten sind, die auch gesetzt werden sollen, also JA bzgl. der Frage.
Das ersetzt das "umständliche" zigfache StampAll ( FeldName, Feldwert ). Ob das jetzt besser oder umständlicher ist, hängt vom Einzelfall ab.
marschul:
Cooles Ding, musste ich gleich mal in einem Agent (einer Spielwiesen-DB) ausprobieren:
--- Code: ---Sub Initialize
Dim oSession As New NotesSession
Dim oDB As NotesDatabase
Dim oColl As NotesDocumentCollection
Dim oDoc As NotesDocument
Set oDB = oSession.CurrentDatabase
Set oColl = oDB.AllDocuments
Set oDoc = oDB.CreateDocument
oDoc.StampAllMultiTest1 = "Wert1"
oDoc.StampAllMultiTest2 = "Wert2"
oColl.StampAllMulti oDoc
End Sub
--- Ende Code ---
Ergebnis: Alle Doks in der DB behielten ihre "alten" Felder und bekamen die 2 neuen dazu. Und: Das Teil ist rasend schnell und sollte sich auf jeden Fall lohnen, wenn man mal mehrere Felder in einer Collection bei gleichem Inhalt pro Feld füllen möchte...
CarstenB:
vielen Dank für die schnelle Antwort
--- Zitat von: ghostmw am 08.06.11 - 11:31:39 ---Das ersetzt das "umständliche" zigfache StampAll ( FeldName, Feldwert )
--- Ende Zitat ---
Ist es denn auch performanter?
CarstenB:
@Marschul,
da hat sich meine letzte Frage mit deiner Antwort wohl gerade überschnitten. Also bringt das ganze wohl zusätzlich einen Leistungsschub.
Vielen Dank!
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln