스크립트 태스크에서 데이터 원본에 연결
적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime
연결 관리자는 패키지에 구성된 데이터 원본에 대한 액세스를 제공합니다. 자세한 내용은 Integration Services(SSIS) 연결을 참조하세요.
스크립트 태스크는 Dts 개체의 속성을 통해 Connections 이러한 연결 관리자에 액세스할 수 있습니다 . 컬렉션의 Connections 각 연결 관리자는 기본 데이터 원본에 연결하는 방법에 대한 정보를 저장합니다.
연결 관리자의 메서드를 호출 AcquireConnection 하면 연결 관리자가 아직 연결되지 않은 경우 데이터 원본에 연결하고 스크립트 작업 코드에서 사용할 적절한 연결 또는 연결 정보를 반환합니다.
참고 항목
AcquireConnection을 호출하기 전에 연결 관리자가 반환하는 연결 유형을 알고 있어야 합니다. 스크립트 태스크에 Option Strict를 사용하도록 설정했기 때문에 개체 형식으로 반환되는 연결을 적절한 연결 형식으로 캐스팅해야 사용할 수 있습니다.
코드에서 연결을 사용하기 전에 Contains 속성에서 반환된 Connections 컬렉션의 Connections 메서드를 사용하여 기존 연결을 찾을 수 있습니다.
Important
스크립트 태스크의 관리 코드에서 OLE DB 연결 관리자 및 Excel 연결 관리자와 같은 관리되지 않는 개체를 반환하는 연결 관리자의 AcquireConnection 메서드를 호출할 수 없습니다. 그러나 이러한 연결 관리자의 ConnectionString 속성을 읽고 System.Data.OleDb 네임스페이스에서 OLEDB OledbConnection의 연결 문자열을 사용하여 코드에서 직접 데이터 원본에 연결할 수 있습니다.
관리되지 않는 개체를 반환하는 연결 관리자의 AcquireConnection 메서드를 호출해야 하는 경우 ADO.NET 연결 관리자를 사용합니다. OLE DB 공급자를 사용하도록 ADO.NET 연결 관리자를 구성하면 .NET Framework Data Provider for OLE DB를 사용하여 연결됩니다. 이 경우 AcquireConnection 메서드는 관리되지 않는 개체 대신 System.Data.OleDb.OleDbConnection을 반환합니다. Excel 데이터 원본에서 사용할 ADO.NET 연결 관리자를 구성하려면 Microsoft OLE DB Provider for Jet를 선택하고, Excel 파일을 지정하고, 연결 관리자 대화 상자의 모든 페이지에서 확장 속성 값으로 (Excel 97 이상) 입력 Excel 8.0
합니다.
연결 예제
다음 예제에서는 스크립트 작업 내에서 연결 관리자에 액세스하는 방법을 보여 줍니다. 샘플에서는 Test ADO.NET Connection이라는 ADO.NET 연결 관리자와 Test Flat File Connection 이라는 플랫 파일 연결 관리자를 만들고 구성한 것으로 가정합니다. ADO.NET 연결 관리자는 데이터 원본에 연결하는 데 즉시 사용할 수 있는 SqlConnection 개체를 반환합니다. 반면 플랫 파일 연결 관리자는 경로와 파일 이름을 포함하는 문자열만 반환합니다. 플랫 파일을 열고 작업하려면 System.IO 네임스페이스의 메서드를 사용해야 합니다.
Public Sub Main()
Dim myADONETConnection As SqlClient.SqlConnection =
DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction),
SqlClient.SqlConnection)
MsgBox(myADONETConnection.ConnectionString,
MsgBoxStyle.Information, "ADO.NET Connection")
Dim myFlatFileConnection As String =
DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction),
String)
MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")
Dts.TaskResult = ScriptResults.Success
End Sub
public void Main()
{
SqlConnection myADONETConnection =
Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)
as SqlConnection;
MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");
string myFlatFileConnection =
Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction)
as string;
MessageBox.Show(myFlatFileConnection, "Flat File Connection");
Dts.TaskResult = (int)ScriptResults.Success;
}