/// <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;
        }
示例#2
0
		/// <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;
		}