/// <summary> /// Insert merge statement into TableLoaders database (merge) command /// </summary> /// <param name="merge">TableLoaders database (merge) command</param> /// <param name="properties">Components custom properties</param> /// <param name="tempTableName">TableLoader temporary table</param> /// <param name="enableIndexOnSCD">Enable SCD temporary table nonclusterd index?</param> /// <returns>TableLoaders database (merge) command with merge statement for SCD</returns> public string InsertIntoMergeStatement(string merge, IsagCustomProperties properties, string tempTableName, bool enableIndexOnSCD) { string tempTableScd = "SCD_" + tempTableName; merge = merge.Trim(); merge = merge.Substring(0, merge.Length - 1); //Semikolon entfernen string result = GetCreateTempTable(tempTableScd, enableIndexOnSCD) + Environment.NewLine + Environment.NewLine; result += merge + Environment.NewLine + Environment.NewLine; result += GetOutputPart(tempTableScd) + Environment.NewLine + Environment.NewLine; foreach (string scdTableName in _scdList.Keys) { result += _scdList[scdTableName].GetMergeStatement(tempTableScd) + Environment.NewLine + Environment.NewLine; ; } result += GetDropTempTable(tempTableScd); return(result); }
/// <summary> /// Updates input column custom property (GUIDs) /// </summary> /// <param name="col">the SSIS input column</param> /// <param name="componentMetaData">>the components metadata</param> /// <param name="isagCustomProperties">the components custom properties</param> private static void UpdateInputIdProperty(IDTSInputColumn100 col, IDTSComponentMetaData100 componentMetaData, IsagCustomProperties isagCustomProperties) { string guid; bool save = false; if (HasIdProperty(col.CustomPropertyCollection, PropertyType.OutputColumn)) { guid = (string)col.CustomPropertyCollection[IdPorpertyNameList[(int)PropertyType.OutputColumn]].Value; foreach (OutputConfig config in isagCustomProperties.OutputConfigList) { if (config.CustomId == guid) { config.DftColumnId = col.ID; save = true; } } } if (HasIdProperty(col.CustomPropertyCollection, PropertyType.ValidParamter)) { guid = (string)col.CustomPropertyCollection[IdPorpertyNameList[(int)PropertyType.ValidParamter]].Value; if (isagCustomProperties.LU2_ValidparameterCustomId == guid) { isagCustomProperties.LU2_ValidparameterId = col.ID; save = true; } } if (HasIdProperty(col.CustomPropertyCollection, PropertyType.MatchParameter)) { guid = (string)col.CustomPropertyCollection[IdPorpertyNameList[(int)PropertyType.MatchParameter]].Value; if (isagCustomProperties.LU_MatchparameterCustomId == guid) { isagCustomProperties.LU_MatchparameterId = col.ID; save = true; } } if (save) { isagCustomProperties.Save(componentMetaData); } }
/// <summary> /// Updates input columns custom properties (GUIDs) /// </summary> /// <param name="input">the components input</param> /// <param name="componentMetaData">>the components metadata</param> /// <param name="isagCustomProperties">the components custom properties</param> private static void UpdateInputIdProperties(IDTSInput100 input, IDTSComponentMetaData100 componentMetaData, IsagCustomProperties isagCustomProperties) { foreach (IDTSInputColumn100 col in input.InputColumnCollection) { UpdateInputIdProperty(col, componentMetaData, isagCustomProperties); } }
/// <summary> /// Updates input columns custom properties (GUIDs) /// </summary> /// <param name="componentMetaData">the components metadata</param> /// <param name="isagCustomProperties">the components custom properties</param> public static void UpdateInputIdProperties(IDTSComponentMetaData100 componentMetaData, IsagCustomProperties isagCustomProperties) { if (!NeedsMapping()) { return; } UpdateInputIdProperties(componentMetaData.InputCollection[0], componentMetaData, isagCustomProperties); }
/// <summary> /// Updates input column custom property (GUIDs) /// </summary> /// <param name="col">the SSIS input column</param> /// <param name="componentMetaData">>the components metadata</param> /// <param name="isagCustomProperties">the components custom properties</param> private static void UpdateInputIdProperty(IDTSInputColumn100 col, IDTSComponentMetaData100 componentMetaData, IsagCustomProperties isagCustomProperties) { if (HasIdProperty(col.CustomPropertyCollection)) { IDTSCustomProperty100 prop = col.CustomPropertyCollection[IdPropertyName]; string guid = (string)col.CustomPropertyCollection[IdPropertyName].Value; foreach (ColumnConfig config in isagCustomProperties.ColumnConfigList) { if (AreIdsEqual(config, guid)) { UpdateColumnConfig(config, col, componentMetaData, isagCustomProperties); } } } }
/// <summary> /// Updates a ColumnConfig and saves the components custom properties /// </summary> /// <param name="config">ColumnConfig</param> /// <param name="col">SSIS column</param> /// <param name="componentMetaData">componets metadata</param> /// <param name="isagCustomProperties">components custom properties</param> private static void UpdateColumnConfig(ColumnConfig config, IDTSInputColumn100 col, IDTSComponentMetaData100 componentMetaData, IsagCustomProperties isagCustomProperties) { config.InputColumnId = col.ID; isagCustomProperties.Save(componentMetaData); }