最近在搞 asp 和 mysql, 查了好多资料都找不到如何在asp中调用存储过程,测了半天,虽然免强可以用了,但是传出参数却发生问题。最后在mysql的论坛找到篇贴子,在这里整理一下,方便大家使用。
http://forums.mysql.com/read.php?98,82009,88532#msg-88532

Conn.Open "driver={MySQL ODBC 3.51 Driver};server=127.0.0.1;port=3307;uid=root;pwd=stephen;database=ctbsdb"
set cmd = server.CreateObject("adodb.command")
set cmd.ActiveConnection = conn
set cmd.ActiveConnection = conn
‘设置变量,返回的值要保存在这里
cmd.CommandText
=
"
set @szErr123 = 0;
"
cmd.Execute()

cmd.CommandText
=
"
call sp_test(?,@szErr123);
"
‘?号的值为下面在Execute中传入的值,建议普通的sql语句也采用这种方式,可以防止sql注入攻击
set
rs
=
cmd.Execute(,ival)
'
前面的" , "号是有的,不要去掉,不是笔误
while
not
rs.eof
response.Write(
"
<br>
"
)
response.Write(rs(
0
))
rs.movenext
wend

’这里在外层套了一层select, 我返回的值是整形,原来输出的是?号,令人不解,所以套上这层就自动转换过了
cmd.CommandText
=
"
select * from (select @szErr123) AS tmp;
"
set
rs2
=
cmd.Execute()

while
not
rs2.eof
response.Write(
"
<br>
"
)
response.Write(rs2(
0
))
rs2.movenext
wend
























希望此文能为大家稍解心结^^