こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ASPでのMySQLストアドプロシージャの実行

ASP(Active Server Pages)を使用してMySQLのストアドプロシージャを実行する方法をどなたか教えて頂けますでしょうか?

環境
 OS    :Windows2000Server
 WEBサーバー :IIS
 DB    :MySQL Ver5.1.22
ODBC   :MyODBC Ver3.51

MySQLへの接続は、問題無く行えてそうなんですが
ストアドプロシージャの実行がうまくいきません。

ASPには、以下のようなコードを記述しています。

Set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionString = "Provider=MSDASQL;DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;USER=root;PASSWORD=XXXX;DATABASE=XXXX;STMT=set names sjis;OPTION=2"
cn.Open

Set cmd = Server.CreateObject("ADODB.Command")
Set rs = Server.CreateObject("ADODB.Recordset")

cmd.ActiveConnection = cn
cmd.CommandText = "test2"
cmd.CommandType=adCmdStoredProc
set rs = cmd.Execute
・・・

test2というストアドプロシージャは、
begin
select * from テーブル名;
end
と、単純なselect文となっています。

IEでWEBページを開くと

エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-5.1.22-rc-community]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call test2 }' at line 1

というエラーが表示されてしまいます。

0x80040E14 というエラーコードをネットで調べてみたりしたのですが
構文エラーというような説明が書かれており、何が原因なのか良く分からなく困っています。

何が原因なのか分かる方がいらっしゃいましたら
教えて下さい。

投稿日時 - 2007-12-21 13:41:56

QNo.3616221

すぐに回答ほしいです

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

#1 です。
ここの情報なんかはどうでしょうか。
http://bugs.mysql.com/bug.php?id=15635
なんかバグっぽい感じですね。MyODBC 3.51.13 あたりから修正されてるっぽいようですが。

投稿日時 - 2007-12-24 17:57:58

お礼

今まで、MyODBC 3.51.12 を使用していました。
現在の最新と思われるMyODBC 3.51.19 を入れて試しましたら
正常に動作しました。

temtecomai2さん
どうもありがとうございました。
本当、助かりました。

投稿日時 - 2007-12-25 09:43:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

念のため。
ASP って ADO の定数文字列って使えましたっけ?
adCmdStoredProc って書いてますが別の場所で定数設定しているんですか?
Const adCmdStoredProc = &H0004
って書いてないんだったら
cmd.CommandType = &H0004
に変えてみるとか。

投稿日時 - 2007-12-21 19:23:19

お礼

ご回答ありがとうございます。
説明不足でした。
ご指摘の件ですが、定数設定は行っております。

投稿日時 - 2007-12-21 20:33:46

あなたにオススメの質問