Domino 9 und frühere Versionen > ND6: Entwicklung

wieder mal eine script frage

<< < (3/5) > >>

Semeaphoros:
Richtig, die DB wird nur gelöscht. Weiterfahren musst Du nicht nach dem Script, sondern vor der Zeile

GoOut:

- DB auf dem Server öffnen
- neue Replik local anlegen lassen
- notes.ini anpassen, falls nötig (sehe nicht, warum Du das willst??)

sky-diver:
Also ich hab mal etwas versucht ..kann das Funktionieren? Wie schon erwähnt ich bin da ein totaler Newbie.

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 Not dbToRemove.OpenByReplicaID(DB_REMOVE_SERVER, DB_REMOVE_REPID) Then
Error 1001, "Die zu löschende Datenbank kann nicht gefunden/geöffnet werden"
End If
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, ""

'Open Db to replicate

Dim dbNewReplica As NotesDatabase
Set dbNewReplica = New NotesDatabase("DB_DATABASE_SERVER", "DB_REPLICATE_REPID")
dbNewReplica(DB_DATABASE_SERVER, DB_REPLICATE_REPID)
Set db = session.CurrentDatabase
Set replica = db.CreateReplica( DB_DATABASE_SERVER,DB_REPLICATE_REPID)

' 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 Selec

TMC:

--- Zitat von: sky-diver am 05.05.05 - 18:41:38 ---..kann das Funktionieren?
--- Ende Zitat ---

Warum testest Du das nicht selbst ???

Es gibt da "Tools":
 - Debugger
 - Option Declare
 - Compiler, der schwerwiegende Fehler erst gar nicht zulässt (und somit nicht kompiliert)

Erster Blick:
 - dbNewReplica ist doppelt gedimmt
 - Konstenten wie DB_DATABASE_SERVER stehen in Anführungszeichen


So, nun teste mal das Script. Benutze die Tools. Und poste genau, wo Du dann ggf. nicht mehr weiterkommst.

sky-diver:
Danke für den Tipp, ich habe den code nochmals ein wenig angepasst.

Nur ist es so beim testen Springt er mir immer in den error handler.
Db nicht gefunden, kann ich auch einfach weitermachen wenn die Db nicht lokal vorhanden ist.
 Also ohne IF was kann ich Alternativ für ein Flag setzen Set  oder Call  geht nicht da Kompeliert er nicht. Hoffe ich krige das noch hin..

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 Not dbToRemove.OpenByReplicaID(DB_REMOVE_SERVER, DB_REMOVE_REPID) Then
   Error 1001, "Die zu löschende Datenbank kann nicht gefunden/geöffnet werden"
End If
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, ""

'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

Semeaphoros:
Aehm, was für eine Meldung gibt der Error-Handler denn aus, wenn Du ihn durchläufst?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln