下面用ASP来调用它: CONN文件(连接数据库)如下:
<% set db=server.createobject("adodb.connection") db.Open ("driver={SQL Server};server=192.168.18.254;uid=sa;pwd=;database=it;") %>
192.168.18.254为SQL SERVER服务器的IP地址,uid pwd it 分别为连接数据库的用户和密码及所要连的数据库
新建一个index.asp文件,内容如下:
<!--#include file="conn.asp" --> <% set rs=server.createobject("adodb.recordset") sql = "exec upGetUserName" rs.open sql,db,3,2
response.write rs.recordcount&"<br>" while not rs.eof response.write rs("uname")&"<br>" rs.movenext wend response.End %>
在浏览器中执行这个页面如果显示如下:

那么恭喜你,成功了! 上面是不带参数的存储过程调用,但我们在使用中一定会有参数的,下面就来介绍一个有参数的。 还是上边的例子,我们把原来的存储过程改成这样:
CREATE PROC upGetUserName @intUserId NVARCHAR(50), @intUserpass NVARCHAR(50) AS BEGIN SELECT uname FROM users WHERE uId=@intUserId and pass=@intUserpass
END GO
可以把原来的存储过程删除,然后把这个写在查询分析器里来执行,也可以直接在原来的存储过程里改。 @intUserId NVARCHAR(50), @intUserpass NVARCHAR(50) 是要传送进来的参数,@是必须的,因为有两个,所以之间用“,”来分隔 index文件改成如下:
<!--#include file="conn.asp" --> <% set rs=server.createobject("adodb.recordset") sql = "exec upGetUserName 'snake','snake'" rs.open sql,db,3,2
response.write rs.recordcount&"<br>" while not rs.eof response.write rs("uname")&"<br>" rs.movenext wend response.End %>
注意:sql = "exec upGetUserName 'snake','snake'" 两个snake不是一个意思,一个是uid,一个是pass,存储过程返回的是uid="snake"并且pass="snake"的记录 数据库里只有一条这样的记录,所以会显示:

OK,你已经入门了!就这么简单!
经典论坛讨论: http://bbs.blueidea.com/thread-2669513-1-2.html
出处:蓝色理想
责任编辑:moby
上一页 SQL存储过程初探 [2] 下一页
◎进入论坛网络编程版块参加讨论
|