﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SQLServerCentral / Programming / SMO/RMO/DMO  / Programming the Data Conversion task in SQL Server Integration Services 2012 in C# / Latest Posts</title><generator>InstantForum.NET v2.9.0</generator><description>SQLServerCentral</description><link>http://www.sqlservercentral.com/Forums/</link><webMaster>notifications@sqlservercentral.com</webMaster><lastBuildDate>Tue, 21 May 2013 03:35:08 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Programming the Data Conversion task in SQL Server Integration Services 2012 in C#</title><link>http://www.sqlservercentral.com/Forums/Topic1286250-22-1.aspx</link><description>Problem solved. For 2012, the ContainsID property needs to be set for the internal representations to work. This was not required for 2005 or 2008.IDTSCustomProperty90 outputProp = outputColumn.CustomPropertyCollection.New();[i][b]outputProp.ContainsID = true;[/b][/i]outputProp.Name = "SourceInputColumnLineageID";outputProp.Value = virtualColumn.LineageID;outputProp = outputColumn.CustomPropertyCollection.New();outputProp.Name = "FastParse";outputProp.Value = false;</description><pubDate>Tue, 22 May 2012 05:32:53 GMT</pubDate><dc:creator>DdG</dc:creator></item><item><title>Programming the Data Conversion task in SQL Server Integration Services 2012 in C#</title><link>http://www.sqlservercentral.com/Forums/Topic1286250-22-1.aspx</link><description>I am trying to adapt C# code that configures the Data Conversion task from the code used in SQL 2005 and 2008 to 2012. Many things seem to have changed, and I am unable to figure out how to correctly assign the properties for the input-&amp;gt;output path in the Conversion task. The following code worked for 2005 and 2008:[code="other"]            IDTSPath90 path = this.mainPipe.PathCollection.New();            path.AttachPathAndPropagateNotifications(sourceComponent.OutputCollection[0], convComponent.InputCollection[0]);            IDTSInput90 input = convComponent.InputCollection[0];            IDTSVirtualInput90 virtualInput = input.GetVirtualInput();            //Binder start og converted sammen. VirtualInput på converted er output på start                            foreach (ModelColumnTransformation columnTransformation in transformation.Transfers)            {                foreach (IDTSVirtualInputColumn90 virtualColumn in virtualInput.VirtualInputColumnCollection)                {                    if (string.Compare(virtualColumn.Name, columnTransformation.FromColumn.Name, true) == 0 || (columnTransformation.FromColumn.Preformatted &amp;&amp; columnTransformation.FromColumn.Name.EndsWith(" as \"" + virtualColumn.Name + "\"")))                    {                        convInstance.SetUsageType(input.ID, virtualInput, virtualColumn.LineageID, DTSUsageType.UT_READONLY);                        IDTSOutputColumn90 outputColumn = convComponent.OutputCollection[0].OutputColumnCollection.New();                        outputColumn.Name = virtualColumn.Name + " (Converted)";                        outputColumn.SetDataTypeProperties(columnTransformation.ToColumn.DataType, columnTransformation.ToColumn.Length, columnTransformation.ToColumn.Precision, columnTransformation.ToColumn.Scale, 0);                        outputColumn.ErrorRowDisposition = DTSRowDisposition.RD_FailComponent;                        outputColumn.TruncationRowDisposition = DTSRowDisposition.RD_IgnoreFailure;                        IDTSCustomProperty90 outputProp = outputColumn.CustomPropertyCollection.New();                        outputProp.Name = "SourceInputColumnLineageID";//I expect this line to be the problem                        outputProp.Value = virtualColumn.LineageID;//I expect this line to be the problem                        outputProp = outputColumn.CustomPropertyCollection.New();                        outputProp.Name = "FastParse";                        outputProp.Value = false;                        break;                    }                }            }[/code]Apparently, the inner workings of the LineageID property has changed, and if I look at the SSIS format, the LineageID now needs to be a "logical" string instead of an integer ID. I have been unable to figure out where to obtain this ID in the objects and assign it in the transition from input to output.</description><pubDate>Thu, 19 Apr 2012 01:41:25 GMT</pubDate><dc:creator>DdG</dc:creator></item></channel></rss>