Hallo zusammen,
ich lese ca 7.000 Datensätze mit 70 Feldern in VBA über COM Anbindung ein und schreibe jedes Dokument in eine Access Tabelle weg.
Die Session erstelle ich folgendermaßen:
'Starten einer Notessession
Set objNotes = New NotesSession
objNotes.Initialize
Am Anfang geht das recht zügig aber je mehr Sätze eingelesen werden desto langsamer wird es.
Woran kann das liegen? Gibt es nen Befehl mit dem ich nach jedem Datensatz Cache oder vergleichbares freigeben kann damit es gleichbleibend schnell läuft?
Grüße
Eric
unterdrücke mal die Ausgabe in Access durch:
Application.Echo False
'-- Code / Felder schreiben
Application.Echo true
Ich vermute mal schwer, dass es NICHT an der Schnittstelle liegt, sondern am umliegenden Code. Ihr habt nicht zufällig ein NotesDocumentCollection.GetNthDocument(x) im Code?
Das hat nämlich GENAU diese Auswirkung bei mehreren Dokumenten: Da steigt die Verarbeitungszeit gefühlt exponentiell an, je mehr Dokumente dazu kommen...
Ne GetNthDocument habe ich nicht drin. Ich mache folgendes:
'Verweisen auf die gewünschte Datenbank
Set LNdb = objNotes.GETDATABASE(strServerName, strDBName)
If Not LNdb Is Nothing Then
Set LNGefiltert = LNdb.SEARCH(strFilter, Nothing, 0)
If Not LNGefiltert Is Nothing Then
'Einlesen des ersten Dokuments
Set LNDoc = LNGefiltert.GETFIRSTDOCUMENT
While Not LNDoc Is Nothing
HIER WERDEN DIE DATEN IN ACCESS WEGGESCHRIEBEN
Set LNDoc = LNGefiltert.GETNEXTDOCUMENT(LNDoc)
Wend
End if
End if
Produziert das das gleiche Problem?
Wenn ja wie kann ich das umgehen?