Die Funktion verlangt: Imports System.Management Imports Microsoft.SqlServer.Management.Smo Folgende Parameter:
Return:
Bemerkungen: Es braucht zur Anwendung noch zwei im Folgenden mit übergebene Hilfsfunktionen. Die Funktion getSQLServerVersion: ''' <summary> ''' SQL Server Version (Langtext) ermitteln ''' </summary> ''' <param name="connStr">der Connectionstring</param> ''' <param name="mBox">True.. der Versionsstring wird gesplittet ausgegeben</param> ''' False.. der Versionsstring wird in einer Messagebox angezeigt ''' <returns>wenn messagebox, dann Nothing, sonst ein Feld der Wörter des Versionsstrings</returns> Public Function getSQLServerVersion(connStr As String, Optional mBox As Boolean = False) _ As Tuple(Of String(), SqlServerVersion) Dim rs(), si() As String, strVers As SqlServerVersion ' das Array der Serverversionen bzgl. der entsprechenden Enumeration im SSMS Dim versArray(,) As String _ = New String(,) {{2000, 80}, {2005, 90}, {2008, 100}, {0, 0}, {2012, 110}, {2014, 120}, {2016, 130}, {2017, 140}, {2019, 150}, {2022, 160}} ' ermitteln der Serverversion mittels Connection zum Server Using connection As New SqlConnection(connStr) connection.Open() Dim cmdText As String = "Select @@version" Dim command As New SqlCommand(cmdText, connection) Dim reader As SqlDataReader = command.ExecuteReader() While reader.Read() rs = Split(reader.GetString(0), vbLf) If Not mBox Then MessageBox.Show(reader.GetString(0)) Return Nothing End If End While reader.Close() connection.Close() End Using ' ermitteln der Serverversion aus SSMS-Enumeration si = IndexofMultiDimStr(versArray, CShort(mitteTeilWorte(rs(0), 3, 3))) strVers = si(0) Return Tuple.Create(rs, strVers) End Function Zugriff auf die Ergebnisse: Dim sp() As String, sv As SqlServerVersion Dim st As Tuple(Of String(), SqlServerVersion) st = getSQLServerVersion(MyConnectionString, True) sp = st.Item1 sv.Item2 Die beiden Hilfsfunktionen: ''' <summary> ''' Suchen eines Wertes im 2-dimensionalen Array ''' </summary> ''' <param name="theArray">das zu durchsuchende Feld</param> ''' <param name="theValue">der zu suchende Wert</param> ''' <returns>wenn Wert nicht gefunden => Nothing ''' wenn Wert gefunden => 2-dim. Feld mit den Indizes des Wertes</returns> Public Function IndexofMultiDimStr(theArray(,) As String, theValue As String) As String() Dim w As Boolean = False Dim i, j As Short Dim rnk As Short = theArray.Rank Dim u1 As Short = UBound(theArray, 1) Dim u2 As Short = UBound(theArray, 2) Dim tmp(1) As String tmp(0) = Nothing : tmp(1) = Nothing For i = 0 To u1 For j = 0 To u2 If IsNothing(theArray(i, j)) Then Return tmp w = theArray(i, j).Equals(theValue) If w Then Exit For Next j tmp(1) = j If w Then Exit For Next i If w Then tmp(0) = i End If Return tmp End Function ' Ermitteln ein oder mehrerer Worte in einem String mittels Nummer des/der Worte Public Function mitteTeilWorte(BaseString As String, Optional anf As Integer = 0, Optional ende As Integer = 0, Optional delim As String = " ") As String Dim spl() As String = Split(BaseString, delim) Dim t As String = "" If ende = 0 Then ende = spl.Length - 1 For i As Short = anf To ende t += spl(i) + delim Next Return t End Function Dieser Tipp wurde bereits 378 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
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. |