Domino 9 und frühere Versionen > Entwicklung

agent + alle documente einer db

<< < (2/3) > >>

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