プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

「実行できなくて」ではなんとも言えないのでもう少し具体的な現象(エラーメッセージ等)を書いていただいたほうが良いかと。



ぱっと見て一箇所だけ気になったのは、

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があがります。

初心者的な質問で大変申し訳ありませんが、ご存知の方教えていただけますようお願い致します。

補足日時:2009/03/16 09:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています