Domino 9 und frühere Versionen > Entwicklung

Status der Datenbank abfragen ...

(1/3) > >>

yes2002:
Hi,

folgendes Problem - ich möchte auf einem Server auf bestimmte Datenbanken zugreifen. Wenn ich mindestens Entwicklerrechte auf eine Datenbank habe (das weiß ich leider vorher nicht) möchte ich Änderungen in der Datenbank vornehmen.

Frage:
Wie kann man am besten seine Rechte auf eine DB testen.

Workaround:
Zur Zeit versuche ich die DBzu referenzieren und fange mögliche Zugriffsfehler mit on error ab. Ich bin damit aber nicht zufrieden. Wer hat eine bessere Idee???

   On Error Goto Fehlerbehandlung
Dim db As New NotesDatabase(persdoc.MailServer(0), persdoc.MailFile(0))

Fehlerbehandlung:
   If Err() = 4060 Then
      Call notesLog.LogError( 0, "FEHLER, kein Zugriff - " & Error() & " (" & Cstr( Err() ) & ") Line:" & Erl() )
      zugriff = 0
      Resume Next
   End If

ata:
... um deine Rechte auf einer Datenbank zu überprüfen kannst du mit den Notes-Klassen arbeiten. Es gibt speziell dafür die NotesACL- und NotesACLEntry- Klassen... mehr dazu findest du in der Notes-Hilfe...

ata

yes2002:
Hallo, das hilft leider nicht. Wenn ich auf eine Datenbank keinen Zugriff habe - bekomme ich schon bei Dim db as new ... (siehe Script unten) diese Fehlermeldung:

user XY cannot open Databse no.nsf

... und der Agent bleibt stehen. Einziger Workaroud ist on error - das möchte ich aber anders lösen.

Hat jemand noch ein Tipp????

Sub Initialize
   Dim session As New NotesSession
   Dim db As  New NotesDatabase("","no.nsf")
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   Set entry = acl.GetEntry( "Dyetra Jones" )
End Sub

Performance:
einen anderen Workaround habe ich nicht, aber dein Ansatz ist nicht schlecht. Wenn du auf eine db kein Zugriff hast kommt der error 4060 den fängst du mit on error ab, ist doch ok.

da gibt es nicht mehr viel ausser einem flag = db.open()

wieso bleibt der Agent stehen? du hast doch ein resume next drin ?

cu

yes2002:
Hi,

doch, in der Fehlerbehandlung ist ein Resume next aufgeführt. Ich hatte gehofft - mir wäre ein Denkfehler unterlaufen und man könnte auf on error an der Stelle verzichten ...

Danke!

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln