Domino 9 und frühere Versionen > Entwicklung
agent + alle documente einer db
klaussal:
@eknori,
hier ist der code (auschnitt):
Machweiter:
Call db.open(strServer, strDB)
Set docNew = dbziel.createDocument
docNew.form = "m_db"
docNew.title = db.title
docNew.name = db.Filename
docNew.path = strPath
docNew.groesse = db.Size
Set collection = db.AllDocuments
n = collection.Count
If Not db.isOpen Then
docNew.number_of_docs = 0
Else
Set collection = db.AllDocuments
End If
If db.IsFTIndexed Then
docNew.indexed = "ja"
Else
docNew.indexed = "nein"
End If
ghost:
Hallo,
wo schreibst Du denn n oder collection.Count in das Feld number_of_docs?
Performance:
ich nehme an "machweiter" steckt in einer Schleife...
- wenn du durch alle db dackelst hast du auch dein directory initialisiert
- wo ist deine Fehlerroutine - hast du hier nur ein resume next gemacht ?
- erst prüfen ob die db offen ist dann wird die collection gesetzt
deshalb kann es sein das ein Fehler schon vor dem n = collection.count auftritt, und ein resume next zur nächsten db läuft
cu
klaussal:
@performance,
jau, resume next war drin.
problem besteht immer noch. ich mache einen call db.open und er liefert mir immer (99,9 %) false zurück. das serverdokument scheint in ordnung zu sein. über die gruppe bin ich überall als admin in den acl's drinne ??? ??? ???
Performance:
@klaussal
es ist immer ein wenig schwierig aus code snippets auf Fehler zu schliessen
- ich paste dir mal meinen Ansatz - es gibt auch im Forum verschieden Ansätze - man muss nur suchen ;D
Dim servern As NotesName
Dim serverdir As NotesDBDirectory
Dim SearchServer As String
On Error Goto ErrorMsg
Set servern = New NotesName(SearchServer)
Set serverdir = New NotesDbDirectory( servern.common )
If Not (serverdir Is Nothing) Then
i= 0
Set tmpdb = serverdir.GetFirstDatabase(DATABASE)
While Not (tmpdb Is Nothing)
i = i + 1
Set dummydb = s.GetDatabase(tmpdb.Server, tmpdb.FilePath)
If (dummydb.IsOpen = False) Then Call dummydb.Open(tmpdb.Server, tmpdb.FilePath)
'' tue dies und jenes
Call createDoc(tmpdb, dummydoc, "Database") '' beim resume next habe ich schon die Fehlermeldung im
'' dokument gespeichert - hier spielt der resume next
'' keine Rolle mehr ausser der Sprung zur nächsten db
Call dummydb.close
Set tmpdb = serverdir.GetNextDatabase
Wend
Else
Print "... no server directory available! exit"
End If
ErrorMsg:
If Err = 4060 Then Resume Next '''' cannot open database - no access
If Err = 91 Then Resume Next '''' cannot open database ... Folgefehler -> Object variable not set
ErrorMessage = " ERROR " & Err & " at line " & Str$(Erl) & ": " & Error$
Print ErrorMessage
Resume Next
''' oder eine Ausgabe in eine Agent log
-- hoffe das hilft dir weiter
cu
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln