###前提・実現したいこと
VB.NET 2013 でSQLServer2014 のエージェントジョブをキックしています。
そこで以下の事柄についてご教授していただければ幸甚です。
①ジョブが終了するまで、次のコードを実行しないこと
②ジョブの終了結果を取得すること
Windowsデスクトップアプリケーションを作成しているので、
DBが更新される前にSQLServer側のエージェントジョブでBKを
とりたいと考えています。
※エージェントジョブは実行できます。
###発生している問題・エラーメッセージ
エージェントジョブのキック部分を記載しておきますが、
エージェントジョブをキックした後のエージェント終了までの
コード記載方法をご教授していただきたいと考えています。
###該当のソースコード
'接続文字列初期化 cn = "" '+ *** 接続文字列 *** cn &= "Provider=SQLOLEDB;" cn &= "Data Source = xx.xx.xx.xx;" cn &= "Initial Catalog = DB;" cn &= "User ID=TEST; Password=TEST!;" cn &= "Trusted_Connection = False;" 'ADODBオブジェクト作成 mCon = New ADODB.Connection '作業領域をクライアント側に設定 mCon.CursorLocation = ADODB.CursorLocationEnum.adUseClient 'SQLServerオープン mCon.Open(cn) 'エージェントジョブ実行SQL指定 strSQL = "USE msdb EXEC sp_start_job 'テストジョブ'" 'SQLにてエージェントジョブ実行 f = mCon.Execute(strSQL)
###試したこと
エージェントジョブの起動確認結果は取得することは出来ますが、
ググってもエージェントジョブの実行結果を取得する根本的な
方法は検索できませんでした。
ジョブが終了するまで次の処理を実行しないことは
「EXEC msdb..sp_help_job @execution_status=1」を利用して
NAME列を取得することで何とかできそうですが、
そもそもNAME列を1行ずつ調べなくてはならないので、
あまりスマートではないです。。。。
テーブル名が分かればSQL文でNAME列のジョブ名を指定できるのですが、
テーブル名が分からないため、それも出来ない状態です。
###補足情報(言語/FW/ツール等のバージョンなど)
SQLServer 2014
VB.Net 2013

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/08 23:54