현재 백엔드에서 .mdb (Access) 데이터베이스 파일을 사용하는 VB.NET 데스크톱 응용 프로그램을 작성하고 있습니다. .mdb 파일은 VB.NET 응용 프로그램에서 열고 편집 할 수 있습니다. 편집이 완료되면 사용자는 SQL Server 데이터베이스로 데이터를 가져와야합니다. 동적 파일 경로 시나리오를 도입 할 때까지는 쉬운 작업입니다.SSIS 패키지 동적 .mdb 연결을 설정하는 방법 .NET 응용 프로그램에서 패키지를 실행하는 경우
SSIS에 대한 상당한 경험이 있지만이 문제에 다소 문제가 있습니다. 사용자가 자신이 선택한 .mdb 파일을 찾을 수있는 WinForm을 만들었습니다. .mdb 파일 이름에는 고유 한 타임 스탬프/날짜 정보가 들어 있습니다. (나는이 응용 프로그램을 개발하지 않았고, 최근에 이것에 대한 작업을 시작 했으므로 문제가 발생합니다 .Mdb 파일 이름을 타임 스탬프로 지정하지는 않겠지 만이 파일을 사용하면 강제로 사용할 수 있습니다!).
어쨌든 파일 이름과 경로를 내 SSIS 패키지에 동적으로 전달해야합니다. 나는 당신이 ConnectionString에 대한 변수를 생성하는 곳을 본다. 그러나 나는 세부 사항과 MS Access (Ole DB, ODBC, 또는 Jet 4.0 for Office)를 위해 사용해야하는 데이터 연결의 유형을 정말로 확신하지 못한다. !)
또한 패키지에서 .mdb 파일을 원본으로 사용하므로 내 데이터 연결의 연결 문자열이 동적이어야한다고 가정합니다. 그러나 SSIS에서 .mdb 파일에 대한 동적 데이터 연결을 만드는 방법은 무엇입니까?
그리고 내 SSIS 패키지에 파일 이름/경로 문자열을 어떻게 전달합니까?
나는 현재이 코드를 사용하여 프로토 타입입니다 :
'Execute the SSIS_Import package
Dim pkgLocation As String
Dim pkg As New Package
Dim app As New Microsoft.SqlServer.Dts.Runtime.Application
Dim pkgResults As DTSExecResult
Dim eventListener As New EventListener()
Try
pkgLocation = "C:\SSIS_DataTransfer\ImportPackage.dtsx"
'TO-DO: pass databasePath variable to SSIS package here ???
pkg = app.LoadPackage(pkgLocation, eventListener)
pkgResults = pkg.Execute(Nothing, Nothing, eventListener, Nothing, Nothing)
Select Case pkgResults
Case DTSExecResult.Completion
MsgBox("Data import completed!")
Case DTSExecResult.Success
MsgBox("Data import was successful!")
Case DTSExecResult.Failure
MsgBox("Data import was not successful!")
End Select
Catch ex As Exception
MsgBox(ex.Message)
End Try
- 은 어떻게 SSIS 패키지에 .mdb 파일의 위치를 전달합니까? 아마도 LoadPackage?
- 내 SSIS 패키지 용 데이터 연결에서 동적 파일 위치는 어떻게 사용합니까?
동적이 아닌 .mdb 파일을 업로드하는 것은 매우 간단합니다. 사용자 선택의 동적 측면을 소개 할 때까지 소스와 대상을 설정하는 것은 매우 쉽습니다. SSIS에서 어떻게 가능합니까?
모든 도움을 주시면 대단히 감사하겠습니다. 감사합니다.
VB 앱에서 패키지 레벨 변수를 설정하는 방법을 알았습니다. 다음과 같이됩니다. pkg.Variables ("databasePath"). 값 = databasePath – D3vtr0n