2013-08-29 2 views
2

여기 내 문제가 있습니다. SegmentID라는 입력에 1 개의 매개 변수를 사용하는 SSIS 패키지가 있습니다. 하지만 난 그것을 C# 코드에서 전달할 수 없습니다. 지금까지 2 일 동안 검색 중이며 작동해야하는 해결책이 있지만 SSIS 패키지가 매개 변수를 가져 오는 단계에서 실패합니다. 도대체 내가 잘못하고있어?SSIS 패키지에 사용자 매개 변수 전달

 using (SqlConnection con = GetConnection()) 
     { 
      var integrationServices = new IntegrationServices(con); 

      if (integrationServices.Catalogs.Contains("SSISDB")) 
      { 
       var catalog = integrationServices.Catalogs["SSISDB"]; 

       if (catalog.Folders.Contains("PSO")) 
       { 
        var folder = catalog.Folders["PSO"]; 

        if (folder.Projects.Contains("PSO_SSIS")) 
        { 
         var project = folder.Projects["PSO_SSIS"]; 

         project.Parameters["SegmentID"].Set(ParameterInfo.ParameterValueType.Literal, segmentID); 

         if (project.Packages.Contains("Main.dtsx")) 
         { 
          var package = project.Packages["Main.dtsx"]; 

          long executionIdentifier = package.Execute(false, null); 
          return catalog.Executions[executionIdentifier]; 
         } 
        } 
       } 
      } 
     } 
+0

2012 프로젝트 모델에서 매개 변수로 작업하는 몇 가지 방법이 있습니다. 프로젝트의 매개 변수를 segmentId 또는 실행의 segmentID의 특정 인스턴스로 구성하려고합니까? – billinkc

+0

잘 모르겠습니다 (SSIS로 게임을하는 동안 오랜 시간이 걸렸습니다), 저는 패키지가 아니라 프로젝트에 매개 변수를 제공한다고 생각합니다. 그래서,'project.Parameters'는 ...'package.Parameters'이어야합니다, 안돼요? – kerrubin

+0

글쎄, 실제로 패키지는 다른 사람이 작성한 것입니다. 나는 그 패키지를 시작하기로되어 있습니다. 나는이 매개 변수를 A LOT 패키지로 전달하려했지만 실패했습니다. 디버그 모드에서 필자는이 매개 변수가 패키지가 아니라 실제로 Project에 보내지고 있음을 확인했습니다 (어떤 이유로). 패키지 자체는 다음과 같은 작업으로 시작합니다. select * from 여기서 SegmentID =? – KorsaR

답변

7

고마워, 얘들 아, 알아 냈어. 전화 후

var setValueParameters = new Collection<PackageInfo.ExecutionValueParameterSet>(); 
          setValueParameters.Add(new PackageInfo.ExecutionValueParameterSet 
          { 
           ObjectType = 20, 
           ParameterName = "SegmentID", 
           ParameterValue = 1 
          }); 

과 :

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

그것이 내가이 일 로깅 수준이나 뭐 같은 시스템 매개 변수에 대한 그냥 생각하는 것이 나에게 너무 많은 혼동 왜 당신이 뭔가를 할 필요가 , 여기서 사용자 매개 변수에 대한 코드는 20이고이 구성은이를 지정하는 데 사용될 수 있다고 언급했습니다. 그것이 내가 2 일 동안 가지고 있었던 butthurt를 피하는 것을 누군가 도울 것이기를 바란다.

관련 문제