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.253 mal aufgerufen.
Anzeige
![]() ![]() ![]() 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. |
sevAniGif (VB/VBA) ![]() Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats ![]() Dieter Otter sevTabStrip: Rechtsklick auf Reiter erkennen Eine Funktion, mit der sich prüfen lässt, auf welchen Tab-Reiter ein Mausklick erfolgte TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.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. |