Domino 9 und frühere Versionen > ND6: Entwicklung
wieder mal eine script frage
sky-diver:
Hi, also keine er macht genau das was er machen muss. Das Popup " Error 1001, "Die zu löschende Datenbank kann nicht gefunden/geöffnet werde"
Das ist ja richtig so. Aber eben besser wäre es ohne die IF Abfrage da ich nicht sicher bin wer die Db lokal hat oder nicht. Wenn die Db nicht vorhanden wäre müsste der Agent einfach weiterlaufen.
Semeaphoros:
Versuchs mal damit:
Sub Click(Source As Button)
Const DB_REMOVE_SERVER$ = ""
Const DB_DATABASE_SERVER$= "Mein Server"
Const DB_REMOVE_REPID$ = "0123456789012345"
Const DB_REPLICATE_REPID$ = "987654321"
On Error Goto ErrorHandler
Dim session As New NotesSession
Dim dbToRemove As NotesDatabase
Dim dbNewReplica As NotesDatabase
Dim strTitleDbToRemove As String
'Open Database by Replica ID
Set dbToRemove = New NotesDatabase("", "")
If dbToRemove.OpenByReplicaID(DB_REMOVE_SERVER, DB_REMOVE_REPID) Then
strTitleDbToRemove = dbToRemove.Title
'Ask
If Not Msgbox ("Gewählte Datenbank: " & strTitleDbToRemove & Chr(10) _
& "Diese Datenbank wirklich dauerhaft löschen?",1 + 32, "Sicher?") = 1 Then Exit Sub
'Remove Database
Call dbToRemove.Remove
'Final msg
Msgbox "Datenbank <" & strTitleDbToRemove & "> wurde gelöscht !", 64, ""
End If
'Open Db to replicate
Dim db As New NotesDatabase( "", "" )
If db.OpenByReplicaID( "MeinServer", "85255FA900747B84" ) Then
Print( db.Title & " was successfully opened" )
Else
Print( "Unable to open database" )
End If
Set db = session.CurrentDatabase
Set replica = db.CreateReplica( "", "" )
' Set new parameters in Notes.ini
Call session.SetEnvironmentVar( "Names", "names.nsf, DC.nsf", True )
GoOut:
Exit Sub
ErrorHandler:
Select Case Err
Case 4042: 'Database could not be deleted
Msgbox "Datenbank konnte nicht gelöscht werden, ein möglicher Grund: Ist gerade von einem anderen User geöffnet",48
Resume goOut
Case Else:
Msgbox "Fehler " & Err & " - " & Error$ & Chr(10) _
& "Fehler aufgetreten in Code-Zeile " & Erl, 48, "Laufzeitfehler"
Resume GoOut
End Select
End Sub
sky-diver:
Soweit so gut ich habe nur noch ein kleines Problem,
beim Anlegen einer Replik ich habe mal versucht den script ein wenig anzupassen- leider ohne Erfolg. In der Hilfe werde ich auch nicht Fündig:
Original
''Open Db to replicate
Dim db As New NotesDatabase( "", "" )
If db.OpenByReplicaID( "MeinServer", "85255FA900747B84" ) Then
Print( db.Title & " was successfully opened" )
Else
Print( "Unable to open database" )
End If
Set db = session.CurrentDatabase
Set replica = db.CreateReplica( "", "" )
Die Db wird Sauber geöffnet, aber er Legt mir eine Replik meiner MailDb, da er diese als Current db erkennt.
Wie kann ich Notes nun beibringen das er die geöffnete Db (statuszeile) glich lokal anlegen soll?
Mein anpassung die Leider nicht Funktioniert
'Open Db to replicate
Dim db As New NotesDatabase( "", "" )
If db.OpenByReplicaID( "MeinServer", "C1256A3B002417C5" ) Then
Print( db.Title & " was successfully opened" )
Set db = session.CurrentDatabase
Set replica = db.CreateReplica( "", "C1256A3B002417C5" )
Else
Print( "Unable to open database" )
End If
Glombi:
Sieh Dir mal die Hilfe an:
Set notesDatabaseReplica = notesDatabase.CreateReplica( newServer$, newDbFile$ )
Parameters
newServer$
String. The name of the server where the replica will reside. Use an empty string ("") to create a replica on the current computer.
newDbFile$
String. The file name of the replica.
also musst Du den Pfad und nicht die Replik-ID angeben.
Andreas
Semeaphoros:
Da ist aber vor allem was anderes falsch.
Die Zeile
set db=session.currentdatabase
muss weg, da passiert der Fehler.
Das andere ist richtig, beim CreateReplica muss ein Filename angegeben werden, also zum Bleistift
Set replica = db.CreateReplica( "", db.filepath )
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln