IDTSVirtualInput100 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public interface class IDTSVirtualInput100 : Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2012::IDTSObject100
[System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.Sql2012.IDTSObject100
[<System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")>]
[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
type IDTSVirtualInput100 = interface
interface IDTSObject100
Public Interface IDTSVirtualInput100
Implements IDTSObject100
- 屬性
- 實作
範例
以下程式碼範例展示了如何在程式化建構資料流程任務時,利用虛擬輸入選擇元件所使用的欄位。
public void SelectColumns(IDTSComponentMetaData100 md)
{
// Create the design time instance of the component.
CManagedComponentWrapper wrp = md.Instantiate();
// Walk the input collection.
foreach (IDTSInput100 input in md.InputCollection)
{
// Get the virtual input columns.
IDTSVirtualInput100 vInput = input.GetVirtualInput();
// For each virtual column, set its usagetype to READONLY.
foreach (IDTSVirtualInputColumn100 vCol in vInput.VirtualInputColumnCollection)
wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);
}
}
Public Sub SelectColumns(ByVal md As IDTSComponentMetaData100)
Dim wrp As CManagedComponentWrapper = md.Instantiate
For Each input As IDTSInput100 In md.InputCollection
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn100 In vInput.VirtualInputColumnCollection
wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)
Next
Next
End Sub
以下程式碼範例展示了一個自訂的資料流元件,當輸入連接到路徑時,會從虛擬輸入中選取所有DT_STR欄位。
public override void OnInputPathAttached(int inputID)
{
IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
IDTSVirtualInput100 vInput = input.GetVirtualInput();
foreach (IDTSVirtualInputColumn100 vCol in vInput.VirtualInputColumnCollection)
{
if (vCol.DataType == DataType.DT_STR)
{
this.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);
}
}
}
Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)
Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput
For Each vCol As IDTSVirtualInputColumn100 In vInput.VirtualInputColumnCollection
If vCol.DataType = DataType.DT_STR Then
Me.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)
End If
Next
End Sub
備註
透過呼叫GetVirtualInput物件的方法IDTSInput100來取得 。IDTSVirtualInput100 屬性 VirtualInputColumnCollection 包含圖中上游元件所提供的欄位。
在程式化建構資料流程任務時,透過呼叫 SetUsageType 的方法 CManagedComponentWrapperClass來選擇元件的虛擬欄位。
撰寫自訂資料流元件的開發者會利用虛擬輸入來發現可用的上游欄位,並根據元件的不同,根據虛擬集合中的欄位加入欄位。
由於虛擬輸入是上游欄位的反映,對虛擬輸入或虛擬輸入集合欄位的修改不會影響自身 IDTSOutput100 。
屬性
| 名稱 | Description |
|---|---|
| Description | |
| ID | |
| IdentificationString | |
| IsSorted | |
| Name | |
| ObjectType | |
| SourceLocale | |
| VirtualInputColumnCollection | |
方法
| 名稱 | Description |
|---|---|
| SetUsageType(Int32, DTSUsageType) | |