フォルダ内のフラットファイルの束をループするSSISパッケージ(SQL Server 2005)があります。フラットファイルのインポートタスクでファイルを開く前に、ソースアプリケーションがファイルの書き込みを完了するまで待つ必要があります。
For Eachループコンテナがあり、その中にデータフロータスクの前に実行するスクリプトタスクがあります。
スクリプトタスクとデータフロータスクの間に成功コネクタを作成しようとすると、次のエラーが発生します。
コネクタを作成できませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。
何かがゼロに設定されているように見えますが、私はそれを見ることができません。DelayValidation
スクリプトタスクとデータフロータスクの両方でtrueに設定しました。他に何が欠けていますか?
私はC#の人なので、VBで明らかな何かが欠けている可能性があります。これが私がインターウェブからポーチしたスクリプトです:
Public Sub Main()
Dim strFileName As String = CType(Dts.Variables("FileName").Value, String)
Dim objFS As System.IO.FileStream
Dim bolFinished As Boolean = False
Do
Try
objFS = System.IO.File.Open(strFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
bolFinished = True
objFS.Close()
Catch ex As Exception
System.Threading.Thread.Sleep(1000)
End Try
Loop
If bolFinished Then
Dts.TaskResult = Dts.Results.Success
Else
Dts.TaskResult = Dts.Results.Failure
End If
End Sub