⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtspackagewrapper.cs

📁 SQL Server 2005 Integration Services (SSIS) is a new Extract, Transform, and Load (ETL) tool that sh
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Pipeline;
using dtr = Microsoft.SqlServer.Dts.Runtime.Wrapper;


namespace Crowe.ExploreIS
{
    class DTSPackageWrapper
    {
        private DTSContext _dtsContext;
        private Package _pkg;
        private DTSPackageContent _currentContent;
        private DTSPackageArea _currentArea;
        private int _currentAreaIndex;

        public void Init(DTSContext dtsContext)
        {
            _dtsContext = dtsContext;

            _pkg = null;

            _currentAreaIndex = -1;

            _currentArea = DTSPackageArea.Tasks;
        }

        public void OpenPackage(string pkgPath)
        {

            _pkg = _dtsContext.CurrentDTSApp.LoadPackage(pkgPath, null);

        }

        public DTSContext CurrentContext
        {
            get
            {
                return (_dtsContext);
            }
        }

        public bool ReadNextContent()
        {
            bool retval = false;

            _currentContent = null;

            if (_currentArea == DTSPackageArea.Tasks )
            {
                    _currentAreaIndex = _currentAreaIndex + 1;

                    if (IsMoreTasks())
                    {
                        retval = true;

                        GetNextContent();

                        WriteContent();
                    }
                    else
                    {
                        retval = false;

                        //Move on to the next connections stuff
                        _currentArea = DTSPackageArea.Connections;

                        _currentAreaIndex = 0;
                    }

            }
            
            if ( _currentArea == DTSPackageArea.Connections )
            {
                    _currentAreaIndex = _currentAreaIndex + 1;

                    retval = false;
            }

            return (retval);
        }

        private void WriteContent()
        {
            foreach (DTSPackageContentItem itm in _currentContent.ContentItems )
            {
                _dtsContext.WriteValueToUI(itm.ContentItemValue);
            }
        }

        private bool IsMoreTasks()
        {
            bool retval = false;

            if (_currentAreaIndex >= _pkg.Executables.Count)
            {
                retval = false;
            }
            else
            {
                retval = true;
            }

            return (retval);
        }

        private void GetNextContent()
        {
            _currentContent = null;

            switch (_currentArea)
            {
                case DTSPackageArea.Tasks:
                    _currentContent = new DTSPackageContent(_pkg.Executables[_currentAreaIndex]);

                    _currentContent.LoadContentItems();

                    break;
                case DTSPackageArea.Connections:
                    break;
            }
        }

        public DTSPackageContent CurrentDTSContent
        {
            get
            {
                return (_currentContent);
            }
        }

    }

    enum DTSPackageArea
    {
        Tasks,
        Connections
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -