重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!gooアプリ版

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

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

A 回答 (2件)

#1 です。


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

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

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

お礼日時:2007/12/25 09:43

念のため。


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

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

お礼日時:2007/12/21 20:33

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