首頁 > 資料庫 > mysql教程 > 如何從 DTSX 檔案中提取軟體包版本資訊?

如何從 DTSX 檔案中提取軟體包版本資訊?

Mary-Kate Olsen
發布: 2024-12-29 11:14:11
原創
423 人瀏覽過

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, "(?)(.*)(? = DTS:屬性>)", 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板