0

タスク: これらの Excel ファイルをループして SQL テーブルにデータを挿入しますが、その過程でエラーが発生し、どのエラーが発生したかわかりません。

私の理解では、SSISはランダムな順序でファイルをループしませんが、接続マネージャーから接続を取得できないというエラーが表示されます。Excel ソースの検証に失敗し、エラー コードが返されました。64bitruntime を False に設定しました。これは、Windows 7 OS 上の VS 2008/SQL Server 2008 R2 で発生しました。最初は、Windows XP-VS2008 /SQL Server 2008 R2 でプロセス全体を正常に実行できました。

問題: フォルダー内に 70 個の奇数のファイルがある場合、どのファイル システムが次に繰り返されるかを知るにはどうすればよいですか。エラーが発生し、SSIS がどのファイルで動作しているかわかりません。ただし、ファイルが実行され、データが SQL にあることがわかります。SSIS が現在動作しているファイル、または次に動作するファイルを見つける方法を教えてください。

4

2 に答える 2

0

スクリプト タスクを追加して、foreach ループで使用される変数をログに記録できます。 ここに画像の説明を入力

スクリプト タスク エディターで読み取り専用変数として変数を追加し、メイン メソッド (C#) に次のようなものを追加します。

public void Main()
{
    bool fireAgain = true;

Dts.Events.FireInformation(0, "Logging FELC variable", "File: " + Dts.Variables["User::FilePath"].Value.ToString(), string.Empty, 0, ref fireAgain); 
于 2014-07-12T21:54:34.977 に答える
0

Excel 処理を実行する直前に、ForEach コンテナー内にスクリプト タスクを追加します。スクリプト タスクで、ForEach ループで構成した変数を追加して、ファイル名を読み取り専用変数に保持します。スクリプト自体で、FireInformation イベントを呼び出します。これにより、情報メッセージが SSIS の進行状況ログに追加されます。FireInformation 呼び出しで、ファイル名変数の値をメッセージ引数として渡します。

これにより、処理中の各ファイルと、失敗したときに処理していたファイルを確認できます。

FireInformation ヘルプ: http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.idtscomponentevents.fireinformation.aspx

于 2014-07-12T21:42:22.633 に答える