- 締切済み
バッチで実行するVBScriptからのストアドプロシージャの実行
VBスクリプトでDBにアクセスし、ストアドプロシージャを実行したいのですが、実行できなくて困っています。ADODB.Commandを使わずに、ADODB.Connection.ExecuteでCommandTextを実行するとレコードを取得することができるので、DBにコネクトすることはできているようなのですが、ストアドプロシージャを実行することができません。どなたか原因分かる方いらっしゃいますでしょうか。このスクリプトはASPではなく、バッチで実行します。よって参照設定ができないので、ComandTypeにadCmdStoredProcを値で入れるようにしています。サーバはWindows2003Server,DBはSQLServer2005です。よろしくお願いします。 Option Explicit On Error Resume Next Dim blnRetCode ' 戻り値 Dim objAdoCon ' ADO 接続 Dim objComm ' コマンドオブジェクト 'Dim return_value 'DBバックアップの成功、失敗の戻り値 ' ADO 定数の読み込み Set objAdoCon = WScript.CreateObject("ADODB.Connection") If Err.Number = 0 Then 'ADODBを使用してDBにアクセスする objAdoCon.ConnectionString = "Provider=SQLOLEDB.1;Password=aaaa;User ID=user2;Catalog=dbname;Data Source=192.168.8.2" objAdoCon.Open Set objComm = CreateObject("ADODB.Command") objComm.ActiveConnection = objAdoCon objComm.CommandType = 4 objComm.CommandText = "ExportData" objComm.Execute If (Err.Number <> 0) Then MsgBox Err.Number End If objAdoCon.Close End If Set objComm = Nothing Set objAdoCon = Nothing
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kztk
- ベストアンサー率53% (59/110)
「実行できなくて」ではなんとも言えないのでもう少し具体的な現象(エラーメッセージ等)を書いていただいたほうが良いかと。 ぱっと見て一箇所だけ気になったのは、 objComm.ActiveConnection = objAdoCon は Set objComm.ActiveConnection = objAdoCon ではないのでしょうか?
補足
ご回答ありがとうございます。 分かりにくい表現で申し訳ありません。エラーは、エラーコード-2147217900で、メッセージを調べてみると、ランタイムエラーやSQLサーバにオブジェクトがみつからないなど、いろいろなメッセージがあり、どのエラーだか分からない状態です。また、 >objComm.ActiveConnection = objAdoCon >は >Set objComm.ActiveConnection = objAdoCon >ではないのでしょうか? に関して、 Set objComm = CreateObject("ADODB.Command") でobjComm にオブジェクトを設定しているので プロパティの値設定はSETが無くてもいいかと思ったのですが、 Setの使い方が間違えておりますでしょうか。 objComm.ActiveConnection = objAdoCon を Set objComm.ActiveConnection = objAdoCon と書き直すと、同じくエラーコード-2147217900があがります。 初心者的な質問で大変申し訳ありませんが、ご存知の方教えていただけますようお願い致します。