2017-03-24 14 views
0

biml 스크립트를 만들었으며 SSIS 프로젝트에서 기존 연결을 다시 사용할 수 있는지 알고 싶습니다.BIML은 프로젝트에 이미 존재하는 연결을 다시 사용합니다.

<Biml xmlns="http://schemas.varigence.com/biml.xsd"> 
<Connections> 
    <CustomSsisConnection CreationName="SrcConn.conmgr" Name="SourceConnection"/> 
</Connections> 
<Packages> 
    <Package Name="SRC_package" > 
     <Tasks> 
      <Dataflow Name="Data Flow Task">      
       <Transformations> 
        <AdoNetSource ConnectionName="SourceConnection" Name="ADO_SRC" > 
         <DirectInput> 

         </DirectInput> 
        </AdoNetSource> 
       </Transformations> 
      </Dataflow> 
     </Tasks> 
    </Package> 
</Packages> 

+0

나는 내가 따라하고 있는지 잘 모르겠다. 수정 버튼을 클릭하여 질문에 대한 더 많은 컨텍스트를 제공 할 수 있습니까? 해결하려는 문제는 무엇입니까? – billinkc

+0

SSIS 프로젝트에 정의 된 기존 연결을 다시 사용하기 만하면됩니다. 변환을 작성한 다음 정의 된 (또는 사용자 정의) 연결 만 사용하려고합니다. 희망이 있습니다. – drb

+0

아닙니다. 기존의 Dataflow를 "Data Flow Task 1"과 복제하면 두 번째로 'SourceConnection'을 참조하게됩니다. Connections 콜렉션에 기존의 연결 관리자와 중복되는'SourceConnection1'을 추가 할 필요가 없습니다 (단, 그것을 복제하는 매우 구체적인 이유) – billinkc

답변

1

아니, 당신은 Biml는 유물 외부에서 정의 된 연결을 사용했다 가질 수 없습니다 : 여기

내가 방금 만든 (작동하지 않는 방식으로) 간단한 스크립트입니다 Biml 컴파일러가 알게 될 것이다. 그것은 루트 문제 같은 소리

는 당신은 내가 그 편리 중 ​​하나를 가지고 있지 않지만 나는 connection strings

<Connections> 
    <AdoNetConnection 
     Name="MyConnection" 
     Provider="Devart.Data.PostgreSql.PgSqlConnection, Devart.Data.PostgreSql, Version=7.4.521.0, Culture=neutral, PublicKeyToken=00MyKey00" 
     ConnectionString="User Id=MyUserName;Password=MyPassword;Host=MyServerName;Database=MyDatabaseName;Persist Security Info=False;Unicode=True;Default FetchAll=true;" 
     DelayValidation="true" /> 
</Connections> 
에 따라 구문에 자상을 것 create a ado.net connection pointing to a postgresql database하는 Biml을하고 싶은 것입니다

적절한 공급자 정보를 얻는 가장 좋은 방법은 BimlStudio을 다운로드하거나 BimlOnline을 만들고 유료 for 도구의 역 엔지니어링/가져 오기 패키지 기능을 사용하는 것입니다. BimlStudio/Mist에는 5 가지 무료 리버스 엔지니어링 기술이 있으며 BimlOnline은 아직 베타 버전이므로 내 경험이 빗나갔습니다. 개인적으로 필자는 패키지를 연결 관리자로 최소화합니다 (모두 선택, 삭제, ImportMe.dtsx로 저장 한 다음 가져 오기). 리버스 엔지니어링해야 할 필요성이 적 으면 적을수록 좋은 성공 확률입니다.

0

답장을 보내 주셔서 감사합니다. Postgre DB와의 연결을 시도했지만 나는 실패했습니다 ... 여전히 실패했습니다 이상한 점은 SSIS와 함께 작동하지만 BIML 스크립트를 통해 가져올 수 없다는 것입니다. 당신 중 일부는 문제의 단서를 가지고 있습니까?

도움 주셔서 감사합니다.

0

당신이 조심 경우 예, 당신이 당신의 BIML 스크립트의 기존 SSIS 프로젝트 연결 관리자를 다시 사용할 수 있습니다 :

  1. 의 코드를 확인하여 기존 프로젝트 연결 관리자의 GUID를 찾기 (에서 보지 마세요 등록 정보 페이지에는 GUID가 표시되지 않습니다.

  2. BIML 스크립트에서 기본 BIML 노드 아래에서 동일한 프로젝트 연결 관리자를 다시 만듭니다. 나는이 연결을 "가짜 프로젝트 연결 관리자"라고 부를 것이다. 기존 연결 문자열과 동일한 연결 문자열을 사용하십시오. 패키지 노드에서

    <Biml> 
    <Connections> 
         <Connection Name="EXISTING_CONMANAGER" CreateInProject="true" ConnectionString="Data Source=....;" /> 
    </Connections> 
    
  3. , 다시 같은 프로젝트 연결 관리자, 실제 기존의 GUID를 사용하여이 시간을 다시 작성하십시오. 이 스크립트를 biml 경우 지금

     <Package Name= "myPackage" ConstraintMode="Parallel" ProtectionLevel="EncryptSensitiveWithUserKey"> 
    
         <Connections> 
         <Connection ConnectionName="EXISTING_CONMANAGER" Id="{GUID_READ_FROM_EXISTING_CONMGR_FILE}"></Connection> 
         </Connections> 
    
  4. 은 새 프로젝트 연결 관리자가 생성되지만이 아직 존재로 여전히 같은 GUID를 사용합니다. 또한 스크립트를 실행 한 후 기존 관리자를 다시로드해야하는지 여부를 묻는 메시지가 표시됩니다. (NO)를 선택해야하지만 두 가지 가능한 답은 모두 유효합니다. 이제 패키지는 솔루션에 이미 존재하는 응답을 사용합니다.

나는 조금 미쳤다. 그러나 그것은 나를 위해 일한다. Id 노드에서 GUID를 지정하면 재 작성된 프로젝트 연결 관리자의 GUID가 기존 연결 관리자 파일에 이미 설정된 값으로 설정됩니다.