Hi,
Under On DFT I am reading data from Using OLEDB Source (I have write a query to get output result in this OLEDB source that generate the following out put)
Output
POSTTYPDATARADzSourceFilezRowIDzLoadTimezPTLOG_ID
AVTNej^;IWS^;...\\E75v0427\GIS\FT\EPA_DEV\22013-09-26 12:50:41.41714697
DATARAD:-
Nej^;IWS^;99^;2009-800220-1^;G^;SAN^;2009-10-29^;2019-12-02^;4900^;Häljaröd 6:25^;99^;^;2012-11-11 23:17:50^;
After Reading data from OLEDB source I split it in to three different output based on POSTTYP values (ie if 1 then go to output one ,if 2 then goto output two and if 3 goto out put three)
Then I use script task component and the code written within it is:-
*********************************************************************************************
' Microsoft SQL Server Integration Services user script component
' This is your new script component in Microsoft Visual Basic .NET
' ScriptMain is the entrypoint class for script components
Imports System
Imports System.Globalization
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute()> _
<CLSCompliant(False)> _
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strValue As String
Dim strKolumn As String
Dim tokenArray As String()
Try
tokenArray = Tokenise(Row.DATARAD)
strKolumn = "BORTTAG"
strValue = GetValueFromTokenArray(tokenArray, 1)
If strValue <> "" Then
Row.BORTTAG = strValue.Trim()
Else
Row.BORTTAG_IsNull = True
End If
strKolumn = "AVTALSNUMMER"
strValue = GetValueFromTokenArray(tokenArray, 2)
If strValue <> "" Then
Row.AVTALSNUMMER = strValue.Trim()
Else
Row.AVTALSNUMMER_IsNull = True
End If
strKolumn = "AVTALSID"
strValue = GetValueFromTokenArray(tokenArray, 3)
If strValue <> "" Then
Row.AVTALSID = strValue.Trim()
Else
Row.AVTALSID_IsNull = True
End If
strKolumn = "STATUS"
strValue = GetValueFromTokenArray(tokenArray, 4)
If strValue <> "" Then
Row.STATUS = strValue.Trim()
Else
Row.STATUS_IsNull = True
End If
strKolumn = "PRODUKTKOD"
strValue = GetValueFromTokenArray(tokenArray, 5)
If strValue <> "" Then
Row.PRODUKTKOD = strValue.Trim()
Else
Row.PRODUKTKOD_IsNull = True
End If
strKolumn = "AVTALETSFORFALLODAG"
strValue = GetValueFromTokenArray(tokenArray, 6)
If strValue <> "" Then
Row.AVTALETSFORFALLODAG = strValue.Trim()
Else
Row.AVTALETSFORFALLODAG_IsNull = True
End If
strKolumn = "PREMIE"
strValue = GetValueFromTokenArray(tokenArray, 7)
If strValue <> "" Then
Row.PREMIE = Convert.ToInt32(strValue)
Else
Row.PREMIE_IsNull = True
End If
strKolumn = "POSITIVTMEDFORMVARDE"
strValue = GetValueFromTokenArray(tokenArray, 8)
If strValue <> "" Then
Row.POSITIVTMEDFORMVARDE = Convert.ToInt64(Math.Round(Convert.ToDecimal(strValue)))
Else
Row.POSITIVTMEDFORMVARDE_IsNull = True
End If
strKolumn = "NEGATIVTMEDFORMVARDE"
strValue = GetValueFromTokenArray(tokenArray, 9)
If strValue <> "" Then
Row.NEGATIVTMEDFORMVARDE = Convert.ToInt64(Math.Round(Convert.ToDecimal(strValue)))
Else
Row.NEGATIVTMEDFORMVARDE_IsNull = True
End If
strKolumn = "MAKLARSALD"
strValue = GetValueFromTokenArray(tokenArray, 10)
If strValue <> "" Then
Row.MAKLARSALD = strValue.Trim()
Else
Row.MAKLARSALD_IsNull = True
End If
strKolumn = "AVTALBESKRIVNING"
strValue = GetValueFromTokenArray(tokenArray, 11)
If strValue <> "" Then
Row.AVTALBESKRIVNING = strValue.Trim()
Else
Row.AVTALBESKRIVNING_IsNull = True
End If
strKolumn = "BETALNINGSTERMIN"
strValue = GetValueFromTokenArray(tokenArray, 12)
If strValue <> "" Then
Row.BETALNINGSTERMIN = Convert.ToSByte(strValue)
Else
Row.BETALNINGSTERMIN_IsNull = True
End If
strKolumn = "SYSTEM"
strValue = GetValueFromTokenArray(tokenArray, 13)
If strValue <> "" Then
Row.SYSTEM = strValue.Trim()
Else
Row.SYSTEM_IsNull = True
End If
strKolumn = "UNDERSTATUS"
strValue = GetValueFromTokenArray(tokenArray, 14)
If strValue <> "" Then
Row.UNDERSTATUS = strValue.Trim()
Else
Row.UNDERSTATUS_IsNull = True
End If
strKolumn = "RANTESATS"
strValue = GetValueFromTokenArray(tokenArray, 15)
If strValue <> "" Then
Row.RANTESATS = strValue.Trim()
Else
Row.RANTESATS_IsNull = True
End If
strKolumn = "LANSBOLAGSKOD"
strValue = GetValueFromTokenArray(tokenArray, 16)
If strValue <> "" Then
Row.LANSBOLAGSKOD = strValue.Trim()
Else
Row.LANSBOLAGSKOD = "00"
End If
strKolumn = "OPPNINGSDATUM"
strValue = GetValueFromTokenArray(tokenArray, 17)
If strValue <> "" Then
Row.OPPNINGSDATUM = strValue.Trim()
Else
Row.OPPNINGSDATUM_IsNull = True
End If
strKolumn = "TRANSAKTIONSDATUM"
strValue = GetValueFromTokenArray(tokenArray, 18)
If strValue <> "" Then
Row.TRANSAKTIONSDATUM = strValue.Trim()
Else
Row.TRANSAKTIONSDATUM_IsNull = True
End If
strKolumn = "AVTALSIDOVERORDNAT"
strValue = GetValueFromTokenArray(tokenArray, 19)
If strValue <> "" And strValue <> "0" Then
Row.AVTALSIDOVERORDNAT = strValue.Trim()
Else
Row.AVTALSIDOVERORDNAT_IsNull = True
End If
Catch e As Exception
Row.zFelBeskrivning = "Fel vid splitt av zRowID: " + CStr(Row.zRowID) + " Kolumn: " + strKolumn
'Me.ComponentMetaData.FireError(-1, "", "Fel vid splitt av zRowID: " + CStr(Row.zRowID) + " Kolumn: " + strKolumn + " Felmeddelande: " + e.ToString(), "",
-1, True)
End Try
End Sub
'Private function that parses out the columns of the whole row
Private Function Tokenise(ByVal input As String) As String()
Dim delim() As String = {"^;"}
Return input.Split(delim, StringSplitOptions.None) 'Split the string by the delimiter
End Function
'Private function that fetches token from tokenarray
Private Function GetValueFromTokenArray(ByVal tokenArray As String(), ByVal token As Integer) As String
If tokenArray.Length < token Then 'Protect against a request for a token that doesn't exist
Return ""
Else
Return tokenArray(token - 1)
End If
End Function
End Class
*********************************************************************************************
By using above code i split the data in to columns which is we get using OLEDB source and column DATARAD (This column have data to split row to column)
Now My requirement is I want to add few new column in to script task and want to delete some of columns.But when I delete old columns and add new columns I get error. and not able to execute the package.
Requesting you to please help me in this.