私は現在、バックエンドで.mdb(Access)データベースファイルを使用するVB.NETデスクトップアプリケーションに取り組んでいます。.mdbファイルは、VB.NETアプリで開いて編集します。編集が完了したら、ユーザーはデータをSQLServerデータベースにインポートする必要があります。動的ファイルパスシナリオを導入しようとするまで、これは簡単な作業です。
私はSSISについてかなりの経験がありますが、これに取り組むのに問題があります。ユーザーが選択した.mdbファイルを参照できるようにするWinFormを作成しました。.mdbファイル名には、一意にするためにタイムスタンプ/日付情報が含まれています。(私はアプリのこの部分を開発しませんでした。最近これに取り組み始めたため、問題が発生しました。.mdbファイル名にタイムスタンプを付けませんが、これはImが強制的に使用したものです!)
とにかく、ファイル名とパスを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
- .mdbファイルの場所をSSISパッケージに渡すにはどうすればよいですか?LoadPackage多分?
- SSISパッケージのデータ接続で動的ファイルの場所を使用するにはどうすればよいですか?
動的ではない.mdbファイルをアップロードするのは非常に簡単です。ユーザー選択の動的な側面を紹介するまで、ソースと宛先の設定は非常に簡単です。これはSSISでどのように可能ですか?
どんな助けでも大歓迎です。ありがとうございました。