Rubrik: Datenbanken · SQL-Server | VB-Versionen: VB5, VB6 | 03.01.06 |
SQL-Server starten, anhalten, beenden Eine universelle Funktion zum Starten, Anhalten oder Beenden des MS SQL-Servers. | ||
Autor: Dieter Otter | Bewertung: | Views: 12.660 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wenn Sie mit dem MS SQL-Server arbeiten, kennen Sie sicherlich auch den SQL Server-Dienst-Manager, mit dem sich ein SQL-Server starten, anhalten oder auch beenden lässt.
Unser heutiger Tipp zeigt, wie man das Ganze aus der eigenen VB-Anwendung heraus steuern kann. Aktivieren Sie hierzu den Verweis "Microsoft SQLDMO Object Library" und fügen nachfolgenden Code in ein Modul ein.
Option Explicit ' SQLSever Aktionen Public Enum ServerAction ServerStart = 0 ServerPause = 1 ServerContinue = 2 ServerStop = 3 End Enum
' SQL-Server starten, anhalten, beenden Public Function SQLServer_Action(ByVal nAction As ServerAction, _ ByVal sServer As String, _ ByVal sUser As String, _ ByVal sPassword As String, _ Optional ByVal bSilent As Boolean = False) As Boolean Dim oServer As SQLDMO.SQLServer ' Versuch, eine Verbindung zum SQL-Server herzustellen ' (falls bereits gestartet) On Error Resume Next Set oServer = New SQLDMO.SQLServer oServer.Connect sServer, sUser, sPassword If Err.Number <> 0 And nAction <> ServerStop Then ' Falls keine Verbindung hergestellt werden konnte, ' jetzt starten Err.Clear oServer.Start False, sServer, sUser, sPassword If Err.Number = -2147023840 And nAction = ServerStart Then ' Falls bereits gestartet, jedoch aktuell angehalten... nAction = ServerContinue ElseIf Err.Number <> 0 Then GoTo ErrHandler End If End If On Error GoTo ErrHandler Select Case nAction Case ServerAction.ServerPause ' Anhalten oServer.Pause Case ServerAction.ServerContinue ' Weiter oServer.Continue Case ServerAction.ServerStop ' Beenden oServer.Stop End Select SQLServer_Action = True On Error GoTo 0 Exit Function ErrHandler: ' Fehler! If Not bSilent Then MsgBox "SQLServer_Action - Error!" & vbCrLf & _ CStr(Err.Number) & " " & Err.Description End If SQLServer_Action = False End Function
Über den optionalen Parameter bSilent können Sie festlegen, ob bei Auftreten eines Fehlers eine Fehlermeldung ausgegeben werden soll. Durch Setzen des Parameters auf True lässt sich die Fehlermeldung unterdrücken.
Aufrufbeispiele:
' SQL-Server starten Dim bResult As Boolean bResult = SQLServer_Action ServerStart, "Servername", "sa", "geheim"
' SQL-Server anhalten Dim bResult As Boolean bResult = SQLServer_Action ServerPause, "Servername", "sa", "geheim"
' SQL-Server beenden Dim bResult As Boolean bResult = SQLServer_Action ServerStop, "Servername", "sa", "geheim"