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 370 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. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... 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 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |