snippetsqlMinor
SSIS Script Component - How to modify the Output0Buffer
Viewed 0 times
scriptoutput0bufferthessishowcomponentmodify
Problem
I've a script component which accepts records from SQL Azure database table. The script then invokes a web service, which returns the number of failed and success records.
For all the records, I would like to add the Status field which has either "success" or "fail" and this gets output from script component.
I then log those output into a text file.
Problem:
I'm not been able to add status for each input records since the web service call only happens on post execute.
I tried this but still doesn't work:
For all the records, I would like to add the Status field which has either "success" or "fail" and this gets output from script component.
I then log those output into a text file.
Problem:
I'm not been able to add status for each input records since the web service call only happens on post execute.
I tried this but still doesn't work:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
}
public override void CreateNewOutputRows()
{
MessageBox.Show("Test CreateNewOutputRows");
MessageBox.Show(listOfData.Count.ToString());
foreach (var item in listOfData)
{
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}
}Solution
Everything in a Transformation is done within Input0_ProcessInputRow
The solution would essentially be
You may be able to perform the output steps in PostExecute, CreateNewOutputRows is not run in Transformation, only in Destination scripts.
The solution would essentially be
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}You may be able to perform the output steps in PostExecute, CreateNewOutputRows is not run in Transformation, only in Destination scripts.
Code Snippets
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}Context
StackExchange Database Administrators Q#7083, answer score: 7
Revisions (0)
No revisions yet.