Maison > base de données > tutoriel mysql > Comment puis-je automatiser la récupération des numéros de version à partir de plusieurs fichiers .dtsx ?

Comment puis-je automatiser la récupération des numéros de version à partir de plusieurs fichiers .dtsx ?

Susan Sarandon
Libérer: 2024-12-21 15:38:16
original
963 Les gens l'ont consulté

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

Récupération automatique du numéro de version à partir des fichiers .Dtsx

Introduction :

Récupération manuelle du package les versions de nombreux fichiers SSIS peuvent être fastidieuses. Cet article propose différentes approches pour automatiser ce processus.

Utilisation des variables système dans les packages SSIS :

  • Accédez aux variables système SSIS dans le package pour récupérer version informations :

    • VersionBuild
    • VersionComment
    • Version GUID
    • VersionMajor
    • VersionMinor

Obtention Version à partir des fichiers .dtsx :

  • Analyser le fichier dtsx au format XML/Texte :

    • Recherchez "PackageFormatVersion " propriété dans le fichier en-tête.
  • Utilisez Regex :

    • Écrivez un modèle d'expression régulière pour capturer les informations PackageFormatVersion.
  • Utiliser un XML Analyseur :

    • Chargez le fichier dtsx en tant que document XML et utilisez XPath pour rechercher l'attribut "PackageFormatVersion".

Récupération d'informations à partir de fichiers .dtsx stockés dans SQL Serveur :

  • Reportez-vous aux liens suivants pour requêtes :

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

Extraction de données à partir de .dtsx Fichiers non stockés dans SQL Server :

  • Utilisez les méthodes décrites ci-dessus (en utilisant l'analyse Regex ou XML) pour lire les fichiers .dtsx stockés sur le système de fichiers.

Exemple de code utilisant 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
Copier après la connexion

Exemple de code utilisant l'analyseur XML :

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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal