次のコード ブロックは、SSIS パッケージのスクリプト タスク (ダンプの実行) 内にあります。スクリプトは、データベース内のテーブルのリストに対して再帰的に呼び出されます。
Function ImportSQLServerToAccess(ByVal sMDBFile As String, ByVal sSource As String, ByVal sDestination As String, ByVal sServer As String, ByVal sDatabase As String) As Boolean
Dim AccessConn As System.Data.OleDb.OleDbConnection
If System.Environment.OSVersion.Version.Major >= 6 Then
AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sMDBFile + "")
Else
AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sMDBFile + "")
End If
AccessConn.Open()
Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT * INTO " + sDestination + " FROM [" + sSource + "] IN '' [ODBC;Driver={SQL Server};Server=" + sServer + ";Database=" + sDatabase + ";Trusted_Connection=yes];", AccessConn)
AccessCommand.ExecuteNonQuery()
AccessCommand.Dispose()
AccessConn.Close()
End Function
ダンプ スクリプトの実行タスクが初めて呼び出されると、クエリは正常に実行され、データが mdb にダンプされますが、その後は 1 回おきに「ODBC--'{SQL Server}DEV01' への接続に失敗しました'」という例外で失敗します。接続が 2 回目に失敗する理由はわかりませんが、1 回目は成功します。これに対する推奨される回避策はありますか?