반응형

패키지 내의 연결 정보 읽어오기

 

한대성

MS SQL Server MVP

에이디컨설팅 책임 컨설턴트 | SQLLeader.com 운영자

 



 Question

연결값을 하드코딩을 해서 자식패키지로 물려주는데요.
만약에 하드코딩이 아닌 부모 패키지에서 쓰고 있는 값을 그대로 자식 패키지로 물려준다고 할때, 커넥션 스트링 값이나 이니셜 카탈로그 값을 어떻게 변수 값으로 등록할수 있는지 그 방법을 알고 싶습니다.

 

 

패키지의 연결 정보를 읽어오는 방법에 대해 간단히 설명하겠습니다.

 

 


패키지에서 위와 같은 여러 연결이 있다고 할 때, 각 연결의 속성 정보 등을 다음과 같은 방법을 이용해서 읽어올 수 있습니다.

 

 

 

각 연결 정보의 ConnectionString 속성을 저장할 변수를 추가합니다.

 

 

제어 흐름 영역에 스크립트 작업을 추가한 후, ReadWriteVariables 속성에 위의 세 변수를 추가합니다.

 

 

VSA에 다음과 같은 스크립트를 입력합니다.

 

 

Imports System

Imports System.Data

Imports System.Math

Imports System.IO

Imports Microsoft.SqlServer.Dts.Runtime

Imports System.Data.SqlClient.SqlConnection

 

 

 

Public Class ScriptMain

 

 

 

                  Public Sub Main()

 

        ''''''''''''''''''''''''''''''''''''

        'ADO.NET 연결인 경우

        ''''''''''''''''''''''''''''''''''''

        Dim myDBConnection As SqlClient.SqlConnection

        myDBConnection = _

            DirectCast(Dts.Connections("ADONETConn").AcquireConnection(Dts.Transaction), SqlClient.SqlConnection)

        MsgBox("ConnectionString : " & myDBConnection.ConnectionString, MsgBoxStyle.Information, "ADONETConn")

        MsgBox("InitialCatalog : " & myDBConnection.Database, MsgBoxStyle.Information, "ADONETConn")

 

        '변수에 저장

        Dts.Variables("ADONETConnStr").Value = myDBConnection.ConnectionString

 

 

        ''''''''''''''''''''''''''''''''''''

        'OLE DB 연결인 경우      

        ''''''''''''''''''''''''''''''''''''

        MsgBox("ConnectionString : " & Dts.Connections("DBServerConn").ConnectionString, MsgBoxStyle.Information, "ADONETConn")

 

        '변수에 저장

        Dts.Variables("DBConnStr").Value = Dts.Connections("DBServerConn").ConnectionString

 

 

        ''''''''''''''''''''''''''''''''''''

        'FIle 연결인 경우

        ''''''''''''''''''''''''''''''''''''

        Dim myFlatFileConnection As String

        myFlatFileConnection = _

            DirectCast(Dts.Connections("FlatFileConn").AcquireConnection(Dts.Transaction), String)

        MsgBox("ConnectionString : " & myFlatFileConnection, MsgBoxStyle.Information, "FlatFileConn")

 

        '변수에 저장
       
Dts.Variables("FileStr").Value = myFlatFileConnection

 

 

        ''''''''''''''''''''''''''''''''''''

        'FIle 연결인 경우

        ''''''''''''''''''''''''''''''''''''

        MsgBox("ConnectionString : " & Dts.Connections("FTPConn").ConnectionString, MsgBoxStyle.Information, "FTPConn")

 

        '변수에 저장

        Dts.Variables("FTPStr").Value = Dts.Connections("FTPConn").ConnectionString

 

 

 

        Dts.TaskResult = Dts.Results.Success

                  End Sub

 

End Class

 

 

 

 

ADO.NET 연결 문자열

 

 

ADO.NET 연결 DB

 

 

 

OLE DB 연결 문자열

 

 

File 연결 문자열

 

 

FTP 연결 문자열



반응형

+ Recent posts