Heim > Datenbank > MySQL-Tutorial > Wie kann ich den Abruf von Versionsnummern aus mehreren .dtsx-Dateien automatisieren?

Wie kann ich den Abruf von Versionsnummern aus mehreren .dtsx-Dateien automatisieren?

Susan Sarandon
Freigeben: 2024-12-21 15:38:16
Original
962 Leute haben es durchsucht

How Can I Automate the Retrieval of Version Numbers from Multiple .dtsx Files?

Abruf der Versionsnummer aus .Dtsx-Dateien automatisieren

Einführung:

Manueller Abruf des Pakets Versionen für zahlreiche SSIS-Dateien können mühsam sein. Dieser Artikel bietet verschiedene Ansätze zur Automatisierung dieses Prozesses.

Verwendung von Systemvariablen in SSIS-Paketen:

  • Zugriff auf SSIS-Systemvariablen innerhalb des Pakets zum Abrufen Version Informationen:

    • VersionBuild
    • VersionComment
    • VersionGUID
    • VersionMajor
    • VersionMinor

Version erhalten von .dtsx-Dateien:

  • Parsen Sie die dtsx-Datei als XML/Text:

    • Suchen Sie nach der Eigenschaft „PackageFormatVersion“. in der Datei Header.
  • Regex verwenden:

    • Schreiben Sie ein Regex-Muster, um die PackageFormatVersion-Informationen zu erfassen.
  • Verwenden Sie ein XML Parser:

    • Laden Sie die DTSX-Datei als XML-Dokument und verwenden Sie XPath, um das Attribut „PackageFormatVersion“ abzufragen.

Informationen aus gespeicherten .dtsx-Dateien in SQL abrufen Server:

  • Siehe die folgenden Links für Abfragen:

    • https://billfellows.com/ssis-package-query/
    • https://technet.microsoft.com/en-us/library/cc521816.aspx

Extrahieren von Daten aus .dtsx-Dateien Nicht im SQL Server gespeichert:

  • Verwenden Sie die oben beschriebenen Methoden (mit Regex- oder XML-Analyse), um im Dateisystem gespeicherte .dtsx-Dateien zu lesen.

Beispielcode verwenden Regex:

Public Sub ReadPackagesInfo(ByVal strDirectory As String)
    ' Initialize a list to store package information
    m_lst.Clear()

    Dim strPackageFormatVersion As String = ""
    Dim strCreationDate As String = ""
    ' ... (Additional property variables)

    For Each strFile As String In IO.Directory.GetFiles(strDirectory, "*.dtsx", IO.SearchOption.AllDirectories)
        ' Read the file contents
        Dim strContent As String = ""
        Using sr As New IO.StreamReader(strFile)
            strContent = sr.ReadToEnd
            sr.Close()
        End Using

        ' Use Regex to extract package version and other properties
        strPackageFormatVersion = Regex.Match(strContent, "(?<=""PackageFormatVersion"">)(.*)(?=</DTS:Property>)", RegexOptions.Singleline).Value
        ' ... (Additional regex patterns for other properties)

        ' Add package information to the list
        m_lst.Add(New PackageInfo With {
                        .PackageFileName = strFile,
                        .PackageFormatVersion = strPackageFormatVersion,
                        ' ... (Additional properties)
                    })
    Next
End Sub
Nach dem Login kopieren

Beispielcode mit XML-Parser:

Public Sub ReadPackagesInfoUsingXmlParser(ByVal strDirectory As String)
    ' Initialize a list to store package information
    m_lst.Clear()

    Dim strPackageFormatVersion As String = ""
    Dim strCreationDate As String = ""
    ' ... (Additional property variables)

    For Each strFile As String In IO.Directory.GetFiles(strDirectory, "*.dtsx", IO.SearchOption.AllDirectories)
        ' Load the file as XML document
        Dim xml = XDocument.Load(strFile)

        ' Create a namespace manager
        Dim ns As XNamespace = "www.microsoft.com/SqlServer/Dts"
        Dim man As XmlNamespaceManager = New XmlNamespaceManager(New NameTable())
        man.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts")

        If Not xml.Root Is Nothing AndAlso
            Not xml.Root.Descendants(ns + "Property").Attributes(ns + "Name") Is Nothing AndAlso
                 xml.Root.Descendants(ns + "Property").Attributes(ns + "Name").Where(Function(x) x.Value = "PackageFormatVersion").Count > 0 Then
            ' Extract package version and other properties using XPaths
            strPackageFormatVersion = xml.Root.Descendants(ns + "Property").Attributes(ns + "Name").Where(Function(x) x.Value = "PackageFormatVersion").FirstOrDefault.Parent.Value
            ' ... (Additional property extraction using XPaths)
        End If

        ' Add package information to the list
        m_lst.Add(New PackageInfo With {
                        .PackageFileName = strFile,
                        .PackageFormatVersion = strPackageFormatVersion,
                        ' ... (Additional properties)
                    })
    Next
End Sub
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich den Abruf von Versionsnummern aus mehreren .dtsx-Dateien automatisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage