hi all,
i am creating a ssis package using C#
i have created a dataflow task using .
i have also added a derived column .
how can i add a new column irrespective of the input columns .
my code:-
Executable e1 = package.Executables.Add("STOCK:PipelineTask");
TaskHost thMainPipe = e1asTaskHost;
MainPipe dataFlowTask = thMainPipe.InnerObjectasMainPipe;
// Add the OleDB Source Component
IDTSComponentMetaData100 Source = dataFlowTask.ComponentMetaDataCollection.New();
Source.ComponentClassID =
"DTSAdapter.OleDbSource";
Source.ValidateExternalMetadata =
true;
// Get the Design Time of the Source OleDB
CManagedComponentWrapper SourceDesignTime = Source.Instantiate();
SourceDesignTime.ProvideComponentProperties();
Source.RuntimeConnectionCollection[0].ConnectionManager =
DtsConvert.GetExtendedInterface(srcConnection);
Source.RuntimeConnectionCollection[0].ConnectionManagerID =
srcConnection.ID;
Source.Name =
"OLEDBSource";
// Set the Access Mode and SQL Command to the OleDB Source
SourceDesignTime.SetComponentProperty(
"AccessMode", 0);
SourceDesignTime.SetComponentProperty(
"OpenRowset", tableName);
if (SourceDesignTime.Validate() ==DTSValidationStatus.VS_NEEDSNEWMETADATA)
{
SourceDesignTime.ReinitializeMetaData();
}
SourceDesignTime.AcquireConnections(
null);
SourceDesignTime.ReinitializeMetaData();
SourceDesignTime.ReleaseConnections();
//Derived Column
IDTSComponentMetaData100 derivedColumn = dataFlowTask.ComponentMetaDataCollection.New();
derivedColumn.ComponentClassID =
"DTSTransform.DerivedColumn";
CManagedComponentWrapper derivedColumnDesign = derivedColumn.Instantiate();
derivedColumnDesign.ProvideComponentProperties();
if (derivedColumnDesign.Validate() ==DTSValidationStatus.VS_NEEDSNEWMETADATA)
{
derivedColumnDesign.ReinitializeMetaData();
}
dataFlowTask.PathCollection.New().AttachPathAndPropagateNotifications(Source.OutputCollection[0],
derivedColumn.InputCollection[0]);
IDTSInput100 input = derivedColumn.InputCollection[0];
IDTSVirtualInput100 derivedInputVirtual = input.GetVirtualInput();
IDTSCustomProperty100 property =null;
foreach (IDTSVirtualInputColumn100
vColumn in derivedInputVirtual.VirtualInputColumnCollection)
{
derivedColumnDesign.SetUsageType(input.ID, derivedInputVirtual, vColumn.LineageID,
DTSUsageType.UT_READWRITE);
}
.....here now i need to add a new column whioch has no realtion to the input ...
such as (DT_STR,12,1252)("vivek")
please help