我目前正在开发一个在后端使用 .mdb (Access) 数据库文件的 VB.NET 桌面应用程序。.mdb 文件在 VB.NET 应用程序中打开和编辑。编辑完成后,用户需要将数据导入我们的 SQL Server 数据库。这是一项简单的任务,直到您尝试引入动态文件路径方案。
我在 SSIS 方面有相当多的经验,但在解决这个问题时遇到了一些麻烦。我创建了一个 WinForm,允许用户浏览到他们选择的 .mdb 文件。.mdb 文件名中包含时间戳/日期信息,以使它们独一无二。(我没有开发应用程序的这一部分,我最近开始研究这个,因此出现了问题。我不会为 .mdb 文件名加上时间戳,但这是我被迫使用的!)。
无论如何,我需要动态地将文件名和路径传递给我的 SSIS 包。我看到你在哪里为 ConnectionString 等创建变量。但我真的不确定细节以及我应该为 MS Access 使用什么类型的数据连接(Ole DB、ODBC 或 Jet 4.0 for Office??哎呀有很多! !)
我还假设我的数据连接的连接字符串必须是动态的,因为包将使用 .mdb 文件作为 SOURCE。但是如何在 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
- 如何将 .mdb 文件位置传递给我的 SSIS 包?LoadPackage 也许?
- 如何在我的 SSIS 包的数据连接中使用动态文件位置?
上传非动态的 .mdb 文件非常简单。在您介绍用户选择的动态方面之前,设置源和目标非常容易。这在 SSIS 中怎么可能?
任何帮助是极大的赞赏。谢谢你。