Domino 9 und frühere Versionen > Entwicklung
Status der Datenbank abfragen ...
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