Пример #1
0
 public SsisOleDbDestination(Transformation t, SSISEmitterContext context) : base(t, context)
 {
     Destination destination = (Destination)_transformation;
     _component.Name = t.Name;
     SetupComponentProperties();
     InitializeConnection(destination.Connection);
 }
Пример #2
0
        public SsisSourceComponent(Transformation t, SSISEmitterContext context)
            : base(t, context)
        {
            OLEDBSource source = (OLEDBSource)t;

            InitializeConnection(source.Connection);
            SetOutputName(source.OutputPath);

            SetComponentProperties(source);
            SetParameterMapping(source.ParameterMappings, SsisPackage.CurrentPackage.DTSPackage.Variables);

            Validate();
        }
Пример #3
0
        public SsisComponent(Transformation transformation, SSISEmitterContext context)
        {
            if (!context.HasSSISDataFlowTask)
            {
                // TODO: Message.Trace(Severity.Error)
            }

            _transformation = transformation;
            _dataFlowTask = context.SSISDataFlowTask;
            _context = context;

            _component = _dataFlowTask.NewComponentMetaData();
            _component.ComponentClassID = ClassID;

            _instance = _component.Instantiate();
            _instance.ProvideComponentProperties();

            _component.Name = _transformation.Name;
            _component.ValidateExternalMetadata = transformation.ValidateExternalMetadata;
        }
Пример #4
0
 public SsisOleDbCommandComponent(Transformation t, SSISEmitterContext context) : base(t, context)
 {
     InitializeConnection(((OLEDBCommand)_transformation).Connection);
     SetOutputName(_transformation.OutputPath);
     SetupComponentProperties();
 }
Пример #5
0
        public static PhysicalDataFlow.Transformation Lower(this AstTransformation.AstTransformationNode astNode)
        {
            if (astNode.AsClassOnly)
            {
                return null;
            }

            try
            {
                PhysicalDataFlow.Transformation transformation = new Ssis2008Emitter.IR.DataFlow.Transformation();

                // TODO: Use reflection here to do dynamic lookups and reduce the surface area for new emission
                Type astNodeType = astNode.GetType();
                if (astNodeType.Equals(typeof(AstTransformation.AstAutoNullPatcherNode)))
                {
                    transformation = ((AstTransformation.AstAutoNullPatcherNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstConditionalSplitNode)))
                {
                    transformation = ((AstTransformation.AstConditionalSplitNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstDerivedColumnListNode)))
                {
                    transformation = ((AstTransformation.AstDerivedColumnListNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstDestinationNode)))
                {
                    transformation = ((AstTransformation.AstDestinationNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstIsNullPatcherNode)))
                {
                    transformation = ((AstTransformation.AstIsNullPatcherNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstLookupNode)))
                {
                    transformation = ((AstTransformation.AstLookupNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstOleDbCommandNode)))
                {
                    transformation = ((AstTransformation.AstOleDbCommandNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstSortNode)))
                {
                    transformation = ((AstTransformation.AstSortNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstQuerySourceNode)))
                {
                    transformation = ((AstTransformation.AstQuerySourceNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstXmlSourceNode)))
                {
                    transformation = ((AstTransformation.AstXmlSourceNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstTermLookupNode)))
                {
                    transformation = ((AstTransformation.AstTermLookupNode)astNode).Lower();
                }
                else if (astNodeType.Equals(typeof(AstTransformation.AstUnionAllNode)))
                {
                    transformation = ((AstTransformation.AstUnionAllNode)astNode).Lower();
                }
                else
                {
                    // TODO: Message.Trace(Severity.Error);
                    return null;
                }
                transformation.AstNodeName = (astNode.ReferenceableName == null ? String.Empty : astNode.ReferenceableName);
                transformation.Name = (transformation.Name == null ? String.Empty : transformation.Name) + Guid.NewGuid().ToString();
                transformation.ValidateExternalMetadata = astNode.ValidateExternalMetadata;
                if (astNode.InputPath != null)
                    transformation.InputPath = new InputPath(astNode.InputPath.PathName, astNode.InputPath.Source);
                if (astNode.OutputPath != null)
                    transformation.OutputPath = new OutputPath(astNode.OutputPath.Name);
                return transformation;
            }
            catch (Exception e)
            {
                throw new SSISEmitterException(astNode, e);
            }
        }
Пример #6
0
 public SsisTermLookupComponent(Transformation t, SSISEmitterContext context) : base(t, context)
 {
     InitializeConnection(((TermLookup)_transformation).Connection);
     SetOutputName(_transformation.OutputPath);
     SetComponentProperties();
 }
Пример #7
0
 public SsisConditionalSplitComponent(Transformation t, SSISEmitterContext context) : base(t, context)
 {
 }
Пример #8
0
 public SsisDerivedColumnsComponent(Transformation t, SSISEmitterContext context) : base(t, context)
 {
     SetOutputName(_transformation.OutputPath);
 }
Пример #9
0
 public SsisUnionAllComponent(Transformation transformation, SSISEmitterContext context) : base(transformation, context)
 {
     SetOutputName(_transformation.OutputPath);
 }