1
A
回答
1
是的,雖然你必須深深進入IDTSPipeline100和相關接口的雜草可以這樣做:
using System;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
namespace CSharpConsoleApp
{
class PackageDemo
{
public void CountColumns(string packagePath, string dataFlowName)
{
Application app = new Application();
Package package = app.LoadPackage(packagePath, null);
TaskHost th = package.Executables[dataFlowName] as TaskHost;
MainPipe mp = th.InnerObject as MainPipe;
foreach (IDTSComponentMetaData100 md in mp.ComponentMetaDataCollection)
{
foreach (IDTSOutput100 output in md.OutputCollection)
{
Console.WriteLine("Component {0} output {1} has {2} columns",
md.Name, output.Name, output.OutputColumnCollection.Count);
foreach (IDTSOutputColumn100 column in output.OutputColumnCollection)
{
Console.WriteLine("\tcolumn {0} ({1}) is of type {2}",
column.ID, column.Name, column.DataType);
}
}
}
}
}
}
請注意,您將需要爲此對Microsoft.SqlServer.ManagedDTS
,Microsoft.SqlServer.DtsPipelineWrap
和Microsoft.SqlServer.DtsRuntimeWrap
引用的DLL代碼來編譯。
相關問題
- 1. SSIS - 動態列映射
- 2. 從SSIS/DTSX包中提取SQL語句
- 3. ssis中的條件列映射
- 4. 從Plist中提取映射註解swift
- 5. 如何動態列映射ssis
- 6. 從映射列表中提取唯一項目
- 7. Hibernate映射 - 包含映射的映射
- 8. 我可以提示用戶輸入SSIS包中的字段映射嗎?
- 9. SSIS錯誤的映射
- 10. 從Hibernate映射獲取列長度?
- 11. VS2010中的SSIS - 嘗試將ODBC連接映射到包變量
- 12. SSIS中的跟蹤參數映射
- 13. 從存儲在msdb中的SSIS包中提取變量
- 14. 從源到目標的自動映射器映射包含對象列表
- 15. 如何在EF中提取實體屬性 - 列映射
- 16. 從SSIS XML文件中提取信息?
- 17. SSIS從姓名中提取姓氏
- 18. 如何從散列映射
- 19. 包含從塊中讀取映射器的Hadoop java文件
- 20. C++映射唯一類並從值中提取子類
- 21. 從自定義Mule Transfomer中提取映射值
- 22. 從數據幀中提取dtypes並映射到頭部
- 23. 從哈希映射中提取元素並將其更新
- 24. 如何提示從SSIS包輸入?
- 25. 提示從SSIS包輸入的問題
- 26. 從SQL服務器提取包含所有已購買應用程序列表的用戶列表(映射表)
- 27. 從內存中獲取grails url映射
- 28. SSIS執行sql任務參數映射
- 29. SSIS ForEach變量映射錯誤
- 30. SSIS映射的解決方案?
嗨埃德蒙,這是否適用於序列容器內的數據流?當我在序列容器中傳遞數據流任務的名稱時,我相信包中唯一的可執行文件就是容器本身。 – dirtyw0lf
是的,雖然在這種情況下你需要兩個步驟。首先,從程序包的'Executables'集合中獲取Sequence。接下來,從Sequence對象的'Executables'集合中獲取DataFlow。 –
還有一點比從Executables集合獲取DataFlow還要多。 http://www.sqlis.com/sqlis/post/Searching-for-tasks.aspx – dirtyw0lf