- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DTSでデータソースのファイル内容が0件の場合、次の処理に進みたい)
DTSでデータソースのファイル内容が0件の場合、次の処理に進みたい
このQ&Aのポイント
- SQLserver2000のDTSを利用して、ファイルの内容をDBに取り込む処理を行っています。
- 1つ目のデータソースのファイルが0件の場合、「データファイルマッピング作成時のエラー」となり、パッケージが終了します。
- 1つ目のファイルが0件の場合でも、次のファイル取り込みに進む方法はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
DTSはSSISとは違って、コンテナもないし、Or条件で後続を指定することもできないので、通常はデータフローのActiveX設定で「実行しない」にするなどでステップをスキップしようとすると、後続の処理も実行されないで終わってしまいます。 したがって、前提後続を維持したままでどうしてもスキップを実装したい場合は以下のようにします。 1)1つ目のファイル取込の前にActiveXスクリプトタスクを置き、以下の処理を記述する Function Main() Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("対象ファイル") If f.AtEndOfStream Then Set oPkg = DTSGlobalVariables.Parent oPkg.Steps("1つ目のファイル取込のステップ名").ExecutionStatus=DTSStepExecStat_Completed End If f.Close Set f = Nothing Main = DTSTaskExecResult_Success End Function 2)2つ目のファイル取込との間のワークフローを「成功」ではなく「完了」にする 見ての通りで、ファイルが空かどうか調べ、空の場合はファイル取込のステータスを先に「完了」に変更してしまいます。 (「成功」にしようとするとうまくいかない可能性があるので、上記でお勧めしておきます)
お礼
ご回答ありがとうございます! お恥ずかしい程の知識不足で、最初、ステップ名の指定をどうするのか迷いましたが ワークフローのプロパティに表示される名前を指定してやって成功しました! 本当に 本当にありがとうございました。 これで思うように処理できそうです!!