• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DTSでデータソースのファイル内容が0件の場合、次の処理に進みたい)

DTSでデータソースのファイル内容が0件の場合、次の処理に進みたい

このQ&Aのポイント
  • SQLserver2000のDTSを利用して、ファイルの内容をDBに取り込む処理を行っています。
  • 1つ目のデータソースのファイルが0件の場合、「データファイルマッピング作成時のエラー」となり、パッケージが終了します。
  • 1つ目のファイルが0件の場合でも、次のファイル取り込みに進む方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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つ目のファイル取込との間のワークフローを「成功」ではなく「完了」にする 見ての通りで、ファイルが空かどうか調べ、空の場合はファイル取込のステータスを先に「完了」に変更してしまいます。 (「成功」にしようとするとうまくいかない可能性があるので、上記でお勧めしておきます)

kudakuda88
質問者

お礼

ご回答ありがとうございます! お恥ずかしい程の知識不足で、最初、ステップ名の指定をどうするのか迷いましたが ワークフローのプロパティに表示される名前を指定してやって成功しました! 本当に 本当にありがとうございました。 これで思うように処理できそうです!!

関連するQ&A