vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · ADO.NET Allgemein   |   VB-Versionen: VB202206.10.25
Status einer SQL-Datenbank überprüfen

Es wird eine übergeordnete Funktion ProofTableState gezeigt, die unter Verwendung einiger Hilfsfunktionen den Status einer Datenbank ermittelt und entsprechend darauf reagiert.

Autor:   Dietrich HerrmannBewertung:  Views:  48 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

Es wird eine übergeordnete Funktion ProofTableState gezeigt, die unter Verwendung einiger Hilfsfunktionen den Status einer Datenbank ermittelt und entsprechend darauf reagiert.

Die Hauptfunktion (Server- und Datenbankname müssen bekannt sein):

''' <summary>
''' 	 Prüfen des Datenbank-Status am SQL-Server
''' </summary>
''' <param name="conn">die SQL-Connection</param>
''' <param name="DBName">der Datenbankname</param>
''' <returns>Rückgabe des Status als String</returns>
Public Function ProofTableState(conn As SqlConnection, DBName As String) As String
  Dim sqlStr As String = "SELECT state_desc FROM sys.databases WHERE name='" + DBName + "'"
  Dim st As String
  Dim cmd As New SqlCommand
 
  With conn
    .Open()
    cmd = New SqlCommand(sqlStr, conn)
    st = cmd.ExecuteScalar.ToString
    cmd.Dispose()
    .Close()
  End With
 
  Return st
End Function

Hilfsfunktionen zur Prüfung, Ermittlung des Datanbank-Status:

''' <summary>
''' 	Setzen des Datenbank-Status auf ONLINE
''' </summary>
''' <param name="oConn">die SQL-Connection</param>
''' <param name="DBName">der Datenbankname</param>
''' <returns></returns>
Public Function DB_SetOnline(ByRef oConn As SqlConnection, DBName As String) As Boolean
  Dim sqlStr As String = "ALTER DATABASE [" + DBName + "] SET ONLINE"
  Return ActionWithTable(oConn, DBName, sqlStr, False)
End Function
''' <summary>
''' 	Setzen des Datenbank-Status auf OFFLINE
''' </summary>
''' <param name="oConn">die SQL-Connection</param>
''' <param name="DBName">der Datenbankname</param>
''' <returns></returns>
Public Function DB_SetOffline(ByRef oConn As SqlConnection, DBName As String) As Boolean
  Dim sqlStr As String = "ALTER DATABASE [" + DBName + "] SET OFFLINE WITH ROLLBACK IMMEDIATE"
  Return ActionWithTable(oConn, DBName, sqlStr, False)
End Function
''' <summary>
''' Aktion mit Datentabelle ausführen, bspw. DELETE, TRUNCATE o.a.
''' </summary>
''' <param name="conn">SQL-Verbindung</param>
''' <param name="tblName">Tabellenname</param>
''' <param name="query">Query-String für die Aktion</param>
''' <param name="flag">Message zeigen ja|nein</param>
Public Function ActionWithTable(conn As SqlConnection, tblName As String,
  query As String, Optional flag As Boolean = True) As Boolean
 
  Try
    Dim cmd As New SqlCommand
    With cmd
      .Connection = conn
      .CommandType = CommandType.Text
      .CommandText = query
      If conn.State <> ConnectionState.Open Then conn.Open()
      .ExecuteNonQuery()
      conn.Close()
    End With
 
  Catch ex As System.Exception
    MessageBox.Show(ex.Message.ToString, "FEHLER",
      MessageBoxButtons.OK, MessageBoxIcon.Error)
    Clipboard.SetText(ex.Message.ToString)
    conn.Close()
 
  Finally
    If flag Then
      Dim t As String = "Aktion mit " + tblName + " erfolgreich!"
      MessageBox.Show(t, "ACTION",
        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End If
  End Try
 
  Return flag
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2025 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.