Domino 9 und frühere Versionen > ND6: Entwicklung

wieder mal eine script frage

<< < (4/5) > >>

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