- - PR -
VB2005から SQLServerのジョブ
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-21 17:15
先程は、ありがとうございました。
申し訳ありません、もう1点 お願いします。 VB2005 + SQLServer2005の環境です。 1.まずSQLServer2005のSSISにてパッケージを作りました。 内容はSQLServer同士(AサーバーからBサーバー間) のテーブルの変換です。 2.次にSQLServer2005で1で作りましたパッケージを実行する ジョブを作成しました。 3.次にVB2005にてジョブを実行するプログラムをコーディングしました。 実行方法は sp_start_jobを使います。(msdnを参考にしました) ここまではOKなのですが、 そこで、お聞きしたいことが2つあります。 1点目は、ジョブを実行しますがジョブが失敗しているにも係わらず 正常の戻り値を返してしまいます。エラーを感知させたいのですが どうするとようのでしょうか? (テストの為、Null値を変換しようとしました) コードは下記の通りです。 jobCommand = New SqlCommand("sp_start_job", jobConnection) jobCommand.CommandType = CommandType.StoredProcedure jobReturnValue = New SqlParameter("@RETURN_VALUE", SqlDbType.Int) jobReturnValue.Direction = ParameterDirection.ReturnValue jobCommand.Parameters.Add(jobReturnValue) jobParameter = New SqlParameter("@job_name", SqlDbType.VarChar) jobParameter.Direction = ParameterDirection.Input jobCommand.Parameters.Add(jobParameter) jobParameter.Value = "JOB" jobConnection.Open() jobCommand.ExecuteNonQuery() jobResult = DirectCast(jobCommand.Parameters("@RETURN_VALUE").Value, Integer) jobConnection.Close() Select Case jobResult Case 0 MsgBox("正常終了") Case Else MsgBox("異常終了:" & jobResult) End Select 実行すると エラーになるはずが 正常終了となってしまいます。 しかし、ジョブをSQLServerで実行するとエラーになります。 そして2点目が SQLServerのジョブの実行するSSISパッケージの接続マネージャの変換先のサーバー名を VBのコードから動的に変更したいのですが、そのコーディングを教えて欲しいのです。 どなたかお力をお貸し頂けないでしょうか。 宜しくお願いします。 | ||||
|
投稿日時: 2007-11-21 18:06
ジョブのプロシージャの中で何もしていないからではないでしょうか。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-11-21 19:24
じゃんぬねっとReありがとうございます。
ジョブのプロシージャの中で何もしていないからではないでしょうか とは具体的にどういうことなのでしょうか? | ||||
|
投稿日時: 2007-11-21 20:29
Integration Services プログラミング - プログラムによる接続の追加でなんとかできるかも知れないですね。(やったことないです。) VBのコードから動的に変更したいというのはなぜですか? パッケージ内に特定の接続先サーバー名が埋め込まれているのは美しくないとか、そういった理由でしょうか。そのような理由なら UDL を介して、接続設定を外部ファイルにするという方法もありだと思います。 | ||||
|
投稿日時: 2007-11-22 10:01
未記入さん、ありがとうございます。
紹介頂いたサイトも見ましたが なかなかどうジョブに反映させるのか解らず・・ リモートパッケージの実行の コーディングで止まったままなのです。 サーバーを動的に変えたいのは パッケージをAサーバーに配置し Bサーバーからリモートパッケージ実行します。 そこでCサーバー(例えば東京にある)、Dサーバー(大阪にある) から起動させた場合SSISの変換先のサーバーを変えて実行させたい からなのです。 Bサーバー用、Cサーバー用、Dサーバー用と 別々に作らず1つのパッケージで接続先を変更して 使用したいのです。 なんとか、お力をお借りして2つの問題を 解決したいのですが・・ すいません、宜しくお願いします。 |
1