示例#1
0
        private void TransferPackageButton_Click(object sender, EventArgs e)
        {
            try
            {
                Server server = new Server(_server);

                IntegrationServices isServer = new IntegrationServices(server);

                Catalog catalog = isServer.Catalogs["SSISDB"];

                CatalogFolder folder = new CatalogFolder(catalog, "Test", "Test description");// catalog.Folders["ProSSIS"];
                folder.Create();

                Project localProject = CreateNewProject("newproject.ispac", "New Project");

                folder.DeployProject("New Project", System.IO.File.ReadAllBytes("newprojects.ispac"));
                folder.Alter();

                ProjectInfo newProject = folder.Projects["New Project"];
                newProject.Move("ProSSIS");
                newProject.Alter();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#2
0
        private void DeployProject_Click(object sender, EventArgs e)
        {
            try
            {
                Server server = new Server(_server);

                IntegrationServices isServer = new IntegrationServices(server);

                Catalog catalog = isServer.Catalogs["SSISDB"];

                CatalogFolder folder = catalog.Folders["ProSSIS"];


                string projectFileName = "myproject.ispac";

                folder.DeployProject("My ProSSIS Project", System.IO.File.ReadAllBytes(projectFileName));
                folder.Alter();

                ProjectInfo p = folder.Projects["My ProSSIS Project"];

                p.References.Add("Environment1", folder.Name);
                p.Alter();

                MessageBox.Show("Project deployed");

                //using (Project project = Project.OpenProject(projectFileName))
                //{


                //    MessageBox.Show("Project deployed");
                //}
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#3
0
        private static void CreateProjectAndDeploy(CatalogFolder catalogFolder, string strProjectLocation, Package package)
        {
            byte[] projectStream = null;

            if (catalogFolder.Name != "CHEFFolder")
            {
                return;
            }

            //Create temporary location if it doesn't exist
            if (!Directory.Exists(strProjectLocation))
            {
                Directory.CreateDirectory(strProjectLocation);
            }

            //Create Project and add the Package to it
            using (Project project = Project.CreateProject(strProjectLocation + @"\TempProject.ispac"))
            {
                project.Name        = processID + "_" + processName + "_" + processType;
                project.Description = "Project Description";
                //package.Parameters.Add("logValue", TypeCode.Boolean);
                //package.Parameters["logValue"].Value = true;
                project.PackageItems.Add(package, "Package.dtsx");
                project.PackageItems[0].Package.Description = "Package Description";
                //project.Parameters.Add("logValue", TypeCode.Boolean);
                project.Save();
            }

            //Convert the Project to equivalent byte stream
            using (FileStream fileStream = new FileStream(strProjectLocation + @"\TempProject.ispac", FileMode.Open, FileAccess.Read))
            {
                byte[] stream            = new byte[fileStream.Length];
                int    numberOfBytesLeft = (int)fileStream.Length;
                int    numberOfBytesRead = 0;
                while (numberOfBytesLeft > 0)
                {
                    int n = fileStream.Read(stream, numberOfBytesRead, numberOfBytesLeft);
                    if (n == 0) //end of file
                    {
                        break;
                    }
                    numberOfBytesRead += n;
                    numberOfBytesLeft -= n;
                }
                projectStream = stream;
            }

            //Deploy the Project
            using (Project project = Project.OpenProject(strProjectLocation + @"\TempProject.ispac"))
            {
                catalogFolder.DeployProject(processID + "_" + processName + "_" + processType, projectStream);
                catalogFolder.Alter();
            }

            //Delete temporary location
            Directory.Delete(strProjectLocation, true);

            //SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHEF"].ConnectionString);
            //conn.Open();
            //SqlCommand comm = conn.CreateCommand();
            //comm.CommandType = CommandType.Text;
            //comm.CommandText = "INSERT INTO [CHEF].[RequestQueue] VALUES(MONTH(SYSDATETIME()), YEAR(SYSDATETIME()), " + processID + ", " + strStartStepID + ", 1, NEWID(), SUSER_SNAME(), SYSDATETIME(), SYSDATETIME())";
            //comm.ExecuteNonQuery();
            //conn.Close();
            //comm.Dispose();
        }