コード例 #1
0
ファイル: EtlCatalogRunner.cs プロジェクト: zyh329/nbi
        public override IExecutionResult Run()
        {
            var connection          = new SqlConnection(string.Format(@"Data Source={0};Initial Catalog=master;Integrated Security=SSPI;", Etl.Server));
            var integrationServices = new IntegrationServices(connection);

            var catalog = integrationServices.Catalogs[Etl.Catalog];
            var folder  = catalog.Folders[Etl.Folder];
            var project = folder.Projects[Etl.Project];
            var package = project.Packages[Etl.Name];

            var setValueParameters = new Collection <PackageInfo.ExecutionValueParameterSet>();

            setValueParameters.Add(new PackageInfo.ExecutionValueParameterSet
            {
                ObjectType     = 50,
                ParameterName  = "SYNCHRONIZED",
                ParameterValue = 1
            });

            long executionIdentifier = package.Execute(Etl.Is32Bits, null, setValueParameters);

            var execution = catalog.Executions[executionIdentifier];

            var result = EtlRunResult.Build(
                execution.Status
                , execution.Messages.Where(m => m.MessageType == 120 || m.MessageType == 110).Select(m => m.Message)
                , execution.StartTime
                , execution.EndTime);

            return(result);
        }
コード例 #2
0
ファイル: EtlDtsRunner.cs プロジェクト: jeason0813/NBi
        public override IExecutionResult Run()
        {
            var app = new Application();

            if (!string.IsNullOrEmpty(Etl.Password))
            {
                app.PackagePassword = Etl.Password;
            }
            var package = Load(Etl, app);

            Parameterize(Etl.Parameters, ref package);

            var events     = new PackageEvents();
            var pkgResults = package.Execute(null, null, events, null, null);
            var result     = (ExecResult)pkgResults;

            return(EtlRunResult.Build(result, events));
        }