首页 > 数据库 > mysql教程 > 如何从 DTSX 文件中提取软件包版本信息?

如何从 DTSX 文件中提取软件包版本信息?

Mary-Kate Olsen
发布: 2024-12-29 11:14:11
原创
422 人浏览过

How Can I Extract Package Version Information from DTSX Files?

从 DTsx 文件提取包信息

要确定存储在目录中的多个 .DTsx 文件的包版本,请考虑以下内容技巧:


  • 将 VBA 与 Regex 或 XmlParser 结合使用:

    此方法涉及读取和解析 .DTsx 文件以提取特定内容属性,包括PackageFormatVersion.

  • 使用 T-SQL 查询:

    如果 .DTsx 文件存储在 SQL Server 的 msdb 数据库中,您可以检索包版本使用专用查询。但是,此方法需要手动导航到 .DTsx 文件的特定数据库位置。

但是,提取未存储在 SQL Server 中的文件的包版本信息需要程序化的方法。以下是每种方法的详细介绍:

以编程方式访问包版本信息

要自动检索包版本,这里有两种编程方法,使用:

1. VBA with Regex:

此方法利用正则表达式来解析 .DTsx 文件并提取 PackageFormatVersion 和其他包属性。定义一个自定义类来表示此信息。下面是说明此方法的代码片段:

<br>Regex.Match(strContent, "(?)", RegexOptions.Singleline).Value<br>
登录后复制

2.带有 XML 解析器的 VBA:

此方法利用 XML 解析器访问 .DTsx 文件内容并提取相关属性。该代码解析 XML 文档并使用命名空间和属性检索 PackageFormatVersion。下面是展示此技术的代码片段:

<br>Dim ns As XNamespace = "www.microsoft.com/SqlServer/Dts"<br>Dim man As XmlNamespaceManager = New XmlNamespaceManager(New NameTable ())<br>man.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts")<br>如果不是 xml.Root 就什么也不是,也不是 xml.Root.Descendants(ns "Property").Attributes(ns "Name") 也什么也不是,而且 xml.Root 也不是。后代(ns“属性”).Attributes(ns“名称”).Where(Function(x)x.Value =“PackageFormatVersion”).Count > 0 然后<pre class="brush:php;toolbar:false">strPackageFormatVersion = xml.Root.Descendants(ns + "Property").Attributes(ns + "Name").Where(Function(x) x.Value = "PackageFormatVersion").FirstOrDefault.Parent.Value
登录后复制

结束如果

附加信息:

  • 演示应用程序:
    作者创建了一个演示应用程序来自动提取软件包版本的过程。它可以从提供的 Dropbox 链接下载。
  • TSQL 查询:
    作者在 DBA.StackExchange 上的回答提供了一个 TSQL 查询来确定文件夹中 .DTsx 文件的 PackageFormatVersions。
  • PackageFormat版本表:
    响应包括映射 SQL Server 版本、内部版本号和相应的 PackageFormatVersions 的表。

以上是如何从 DTSX 文件中提取软件包版本信息?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板