2016-11-05 4 views
2

В коде ниже я получаю имя столбца, я не мог найти свойство Value в inputcolumnКак я могу получить значение столбца Value в скрипте в SSIS?

мне нужно получить значение столбца, а не только имя.

IDTSInput100 input = ComponentMetaData.InputCollection[0]; 

IDTSVirtualInput100 vinput = input.GetVirtualInput(); 

foreach (IDTSVirtualInputColumn100 inputcolumn in vinput.VirtualInputColumnCollection) 
{ 
    strAll += inputcolumn.Name + ", " + Environment.NewLine; 
} 
+0

Я не понимаю, зачем использовать этот код в компоненте скрипта? или это задача скрипта? – Hadi

+0

Поскольку компонент скрипта позволяет вам преобразовывать данные, используя мой любимый язык программирования, например C#. – SamekaTV

ответ

0

Этот код vb.net, но я думаю, что это то, что вы ищете

Public Class ScriptMain 

Inherits UserComponent 

Private columns As Integer() 

Public Overrides Sub PreExecute() 

Dim input As IDTSInput90 = ComponentMetaData.InputCollection(0) 

ReDim columns(input.InputColumnCollection.Count) 

columns = Me.GetColumnIndexes(input.ID) 

System.Windows.Forms.MessageBox.Show(columns.Length.ToString()) 

End Sub 

Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer) 



While Buffer.NextRow() 

Dim values As New System.Text.StringBuilder 

For Each index As Integer In columns 

Dim value As Object = Buffer(index) 

'If value Is Not Nothing Then 

values.Append(value) 

'End If 

values.Append(",") 

Next 

'' TODO: Write line to destination here 

System.Windows.Forms.MessageBox.Show(values.ToString()) 

End While 

End Sub 

End Class 

Me.GetColumnIndexes() метод может быть создан из вашего кода при условии.