2017-02-09 82 views
0

我們正在這裏進行技術升級。轉移到SQL Server 2012.同時將應用程序從.Net 2.0轉移到.Net 4.5+,以便我們也可以在新操作系統上運行應用程序。問題是應用程序代碼在運行中創建了DTS軟件包,然後運行任務運行程序以通過運行軟件包將上載的DTS軟件包所構建的文件讀取到數據庫中。舊代碼使用DTS庫來創建DTS包。當然這個代碼不再可用。如何刪除依賴於.net 2.0 DTS庫的動態構建DTS包。如何使用等效的SSIS從C#.Net 4.6開始?

我不想轉換DTS包。我試圖不去,把它們放在第一位。我可以使用SSIS,但我不確定這是如何使用SSIS的。任何人都可以告訴我如何使用SSIS來解決這個問題。

謝謝你的時間!

+0

你明白什麼是DTS組件嗎?我懷疑它只是導入文件。如果是這種情況,那麼動態地創建和運行DTS文件是完全矯枉過正的(在運行中創建SSIS包也是矯枉過正)。如果這一步只是導入數據,那麼您可以直接在.Net中輕鬆實現。如果您必須創建SSIS pacakges,那麼您可以使用BIML根據元數據自動生成它們,但在15年內也會過時! –

+0

LOL,約定尼克,下面的傢伙也建議BIML(我從來沒有聽說過),我會看看這個...而且,你確定的懷疑是正確的,它只是將數據導入它是通過上傳文件的數據庫。我可以清楚地看到......我目前的意圖是編寫自己的導入例程,以導入上傳的相同文件,而無需使用任何軟件包的路徑。我認爲這是非常必要的。雖然我會看看BIML,看看在這種情況下這可能是否合理... –

回答

1

那麼,如果您沒有程序生成SSIS包的源代碼,則幾乎沒有變化。
這裏的主要問題是,該程序將生成舊的SSIS版本的包;它涵蓋了DTSX文件格式和組件名稱。組件名稱是SSIS任務和數據流項目的名稱,這是SSIS知道下一步要執行的任務的方式。這些組件名稱中的大多數在SSIS的下一個版本中都會發生更改;此外,一些組件已經改變了它們的參數名稱。
如果您完整保留DTS生成程序,您將永遠收到SSIS過期版本的軟件包。簡單的軟件包可以通過SSIS進行轉換和升級,但更復雜的軟件包應該進行手動升級。
在你的情況下,有幾種可能性:

  • 查找源代碼並修改它來生成正確的軟件包。
  • 生成包,保存並隨後使用SSIS或Visual Studio的升級嚮導進行升級。然後,您必須在VS中手動維護包,並通過SQL Server代理或批處理文件運行它們。
  • 熟悉BIML以基於元數據動態生成包。 C#方法更簡單。

我個人會選擇第三個選項。

+0

是的,我確實不希望將自動化過程變成需要手動將DTS包轉換爲SSIS包的過程。事實上,這裏真正發生的是文件上傳並需要導入到數據庫中。我會看看BIML,看看它是否有意義,但現在我想我可以用C#編寫一個導入工具來處理它。謝謝您的意見! –