Call Procedure for mysql in ASP

来源:互联网 发布:保定linux招聘 编辑:程序博客网 时间:2024/06/02 04:15

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

http://forums.mysql.com/read.php?98,82009,88532#msg-88532

set Conn=Server.CreateObject("ADODB.Connection")
    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
  ‘设置变量,返回的值要保存在这里
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


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