Autor Thema: StampAllMulti  (Gelesen 1953 mal)

Offline CarstenB

  • Aktives Mitglied
  • ***
  • Beiträge: 193
  • Geschlecht: Männlich
StampAllMulti
« am: 08.06.11 - 11:24:15 »
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?

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: StampAllMulti
« Antwort #1 am: 08.06.11 - 11:31:39 »
Hi CarstenB,

Zitat
StampAllMulti
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.

Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: StampAllMulti
« Antwort #2 am: 08.06.11 - 11:48:03 »
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

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...
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline CarstenB

  • Aktives Mitglied
  • ***
  • Beiträge: 193
  • Geschlecht: Männlich
Re: StampAllMulti
« Antwort #3 am: 08.06.11 - 11:49:14 »
vielen Dank für die schnelle Antwort

Das ersetzt das "umständliche" zigfache StampAll ( FeldName, Feldwert )

Ist es denn auch performanter?

Offline CarstenB

  • Aktives Mitglied
  • ***
  • Beiträge: 193
  • Geschlecht: Männlich
Re: StampAllMulti
« Antwort #4 am: 08.06.11 - 11:51:01 »
@Marschul,
da hat sich meine letzte Frage mit deiner Antwort wohl gerade überschnitten. Also bringt das ganze wohl zusätzlich einen Leistungsschub.
Vielen Dank!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz