I want to build a dynamic script component as source and destionation for multible tables. I just started by sample at Microsoft Page. It is working for specific table but now need to convert it to dynamic for all tables but need your helps.
First I thought to generate 'MyAddressOutputBuffer.Column' part dynamicly by below sql query.
SqlCommand cmdMeta = new SqlCommand(@"
select ColumnMapping = ' MyAddressOutputBuffer.Column'+cast(RANK() OVER(ORDER BY c.name)-1 as varchar(5))+' = sqlReader.GetValue(' + cast(RANK() OVER(ORDER BY c.name) - 1 as varchar(5)) + ').ToString();'
from sys.tables t
inner join sys.columns c on t.object_id = c.object_id
where t.name = 'Address'", sqlConn);
sqlReaderMeta = cmdMeta.ExecuteReader();
Above code give expected result but not sure how replace with hardcoded mapping with below part :
public override void CreateNewOutputRows()
{
while (sqlReader.Read())
{
{
MyAddressOutputBuffer.AddRow();
MyAddressOutputBuffer.AddressID = sqlReader.GetValue(0).ToString(); // I use getVAlue for all data types.
MyAddressOutputBuffer.City = sqlReader.GetValue(1).ToString();
}
}
}
Is there any way to say C# to run dynamic query which return from above sql instead of hardcoded?