/// <summary> /// Called before execution. Initialize resources. /// </summary> public override void PreExecute() { _ContainerID = (string)this.GetPropertyValue("ContainerID"); _idColumnName = (string)this.GetPropertyValue("IDColumn"); _EntityKind = (string)this.GetPropertyValue("EntityKind"); _CreateNewID = (bool)this.GetPropertyValue("CreateNewID"); _multithread = (bool)this.GetPropertyValue("UseMultithreadInsert"); _Container = _con.GetContainerById(_ContainerID); // Cache all of our input column information // We do this here because the calls to the native interops // degrades performance during the ProcessInput() calls. IDTSInput100 input = ComponentMetaData.InputCollection[0]; Debug.Assert(input != null); _inputColumnInfo = new List <InputColumnInfo>(input.InputColumnCollection.Count); foreach (IDTSInputColumn100 column in input.InputColumnCollection) { InputColumnInfo info = new InputColumnInfo(); info.Name = column.Name; info.DataType = column.DataType; info.ID = column.ID; info.Index = BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID); _inputColumnInfo.Add(info); } // Set the ID Column information if (_CreateNewID == false) { bool foundId = false; foreach (InputColumnInfo info in _inputColumnInfo) { if (info.Name == _idColumnName) { _idColumnIndex = info.Index; _idColumnId = info.ID; foundId = true; break; } } if (!foundId) { ComponentMetaData.FireError(0, ComponentMetaData.Name, "Can't find ID Column: " + _idColumnName, string.Empty, 0, out this._cancel); return; } } // Set the Error output ID _errorOutputId = ComponentMetaData.OutputCollection[0].ID; }
/// <summary> /// Called before execution. Initialize resources. /// </summary> public override void PreExecute() { _ContainerID = (string)this.GetPropertyValue("ContainerID"); _idColumnName = (string)this.GetPropertyValue("IDColumn"); _EntityKind = (string)this.GetPropertyValue("EntityKind"); _CreateNewID = (bool)this.GetPropertyValue("CreateNewID"); _multithread = (bool)this.GetPropertyValue("UseMultithreadInsert"); _Container = _con.GetContainerById(_ContainerID); // Cache all of our input column information // We do this here because the calls to the native interops // degrades performance during the ProcessInput() calls. IDTSInput100 input = ComponentMetaData.InputCollection[0]; Debug.Assert(input != null); _inputColumnInfo = new List<InputColumnInfo>(input.InputColumnCollection.Count); foreach (IDTSInputColumn100 column in input.InputColumnCollection) { InputColumnInfo info = new InputColumnInfo(); info.Name = column.Name; info.DataType = column.DataType; info.ID = column.ID; info.Index = BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID); _inputColumnInfo.Add(info); } // Set the ID Column information if (_CreateNewID == false) { bool foundId = false; foreach (InputColumnInfo info in _inputColumnInfo) { if (info.Name == _idColumnName) { _idColumnIndex = info.Index; _idColumnId = info.ID; foundId = true; break; } } if (!foundId) { ComponentMetaData.FireError(0, ComponentMetaData.Name, "Can't find ID Column: " + _idColumnName, string.Empty, 0, out this._cancel); return; } } // Set the Error output ID _errorOutputId = ComponentMetaData.OutputCollection[0].ID; }