【发布时间】:2011-05-10 03:09:18
【问题描述】:
我有一个项目在 SqlServer 2005 和 SqlServer 2008 的 SSIS 上运行一些代码。我的问题是我为此维护了两个 Visual Studio 解决方案,因为两个版本的 SQL Server 的数据类型不同(以..90 在 SQL Server 2005 上和 ...10 在 SQL Server 2008 上)。它们也在不同的程序集中。
有没有一种简单的方法来管理这个,无论是在开发中还是在构建中,我讨厌必须在两个地方(每个解决方案)输入我的代码,并且随着 SQL Server 2011 的到来,我怀疑我将不得不这样做三遍.您如何解决这个问题,或者对如何解决这个问题有任何建议?
编辑: 这是我正在做的一个示例,因为我认为很难在界面中将其分解,或者?
foreach (IDTSVirtualInputColumn90 virtualColumn in virtualInput.VirtualInputColumnCollection)
{
if (string.Compare(virtualColumn.Name, columnTransformation.FromColumn.Name, true) == 0 || (columnTransformation.FromColumn.Preformatted && 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";
outputProp.Value = virtualColumn.LineageID;
outputProp = outputColumn.CustomPropertyCollection.New();
outputProp.Name = "FastParse";
outputProp.Value = false;
break;
}
}
【问题讨论】:
标签: c# sql-server assemblies types