フォルダ内のフラットファイルの束をループする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