Example #1
0
        public virtual void SetInputUsageType(string name, DTSUsageType usageType)
        {
            IDTSVirtualInput90       vi   = Component.InputCollection[0].GetVirtualInput();
            IDTSVirtualInputColumn90 vcol = vi.VirtualInputColumnCollection[name];

            SetInputUsageType(vi, vcol, usageType);
        }
Example #2
0
        /// <summary>
        /// Automap must ALWAYS be called BEFORE Map() otherwise bad things will happen to the SSIS Metadata.
        /// </summary>
        protected void AutoMap()
        {
            IDTSVirtualInput90 cvi = _oledbDest.InputCollection[0].GetVirtualInput();

            // The indexing APIs for collections in DTS are terrible and don't easily expose the right functions.
            // Building a temporary Virtual Input dictionary is much, much easier.

            Dictionary <string, IDTSVirtualInputColumn90> virtualInputDictionary = new Dictionary <string, IDTSVirtualInputColumn90>();

            foreach (IDTSVirtualInputColumn90 vc in cvi.VirtualInputColumnCollection)
            {
                virtualInputDictionary[vc.Name.ToUpperInvariant()] = vc;
            }

            // Automatically map columns
            foreach (IDTSExternalMetadataColumn90 extCol in _oledbDest.InputCollection[0].ExternalMetadataColumnCollection)
            {
                if (virtualInputDictionary.ContainsKey(extCol.Name.ToUpperInvariant()))
                {
                    IDTSVirtualInputColumn90 vc = virtualInputDictionary[extCol.Name.ToUpperInvariant()];

                    _oledbDestI.SetUsageType(
                        _oledbDest.InputCollection[0].ID,
                        cvi,
                        vc.LineageID,
                        DTSUsageType.UT_READONLY
                        );

                    _oledbDest.InputCollection[0].InputColumnCollection[vc.Name].ExternalMetadataColumnID = extCol.ID;
                }
            }
        }
Example #3
0
 public virtual void SetInputUsageType(IDTSVirtualInput90 vi, IDTSVirtualInputColumn90 vcol, DTSUsageType usageType, bool forceOverwrite)
 {
     // This will not make a DT_READWRITE column more restrctive :)  Only less restrictive
     if (vcol.UsageType != DTSUsageType.UT_READWRITE || forceOverwrite)
     {
         ComponentInstance.SetUsageType(
             Component.InputCollection[0].ID,
             vi,
             vcol.LineageID,
             usageType
             );
     }
 }
Example #4
0
 public virtual void SetInputUsageType(IDTSVirtualInput90 vi, IDTSVirtualInputColumn90 vcol, DTSUsageType usageType)
 {
     this.SetInputUsageType(vi, vcol, usageType, false);
 }
Example #5
0
 public virtual void SetInputUsageType(IDTSVirtualInput90 vi, IDTSVirtualInputColumn90 vcol, DTSUsageType usageType, bool forceOverwrite)
 {
     // This will not make a DT_READWRITE column more restrctive :)  Only less restrictive
     if (vcol.UsageType != DTSUsageType.UT_READWRITE || forceOverwrite)
     {
         ComponentInstance.SetUsageType(
             Component.InputCollection[0].ID,
             vi,
             vcol.LineageID,
             usageType
             );
     }
 }
Example #6
0
 public virtual void SetInputUsageType(IDTSVirtualInput90 vi, IDTSVirtualInputColumn90 vcol, DTSUsageType usageType)
 {
     this.SetInputUsageType(vi, vcol, usageType, false);
 }