現在、バックエンドで.mdb(Access)データベースファイルを使用するVB.NETデスクトップアプリケーションを作成しています。 .mdbファイルは、VB.NETアプリケーションで開いて編集できます。編集が完了したら、ユーザーはデータをSQL Serverデータベースにインポートする必要があります。これは、動的ファイルパスシナリオを導入するまで、簡単な作業です。.NETアプリケーションからパッケージを実行するときにSSISパッケージの動的.mdb接続を設定する方法
私は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
- は、どのように私は私のSSISパッケージに.mdbファイルの場所を渡すのですか? LoadPackageかもしれない?
- データ接続でSSISパッケージの動的ファイルの場所を使用するにはどうすればよいですか?
ダイナミックでない.mdbファイルをアップロードするのは簡単です。ソースと目的地を設定することは、ユーザー選択のダイナミックな側面を導入するまで非常に簡単です。これはSSISではどのように可能ですか?
何か助けていただければ幸いです。 ありがとうございます。
私はVBアプリケーションからパッケージレベルの変数を設定する方法を考え出しました。 これは次のようなものです: pkg.Variables( "databasePath")。値=データベースパス – D3vtr0n