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 1.009 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! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats Oktober 2024 Heinz Prelle Firewall-Status unter WinXP/Vista prüfen Das Beispiel prüft, ob die Firewall unter Windows XP/Vista eingeschaltet ist oder nicht. Zudem wird eine Abfrage durchgeführt ob es sich bei dem zugrundeliegenden Betriebssystem um Windows XP/Vista handelt oder nicht. 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. |