| 下面用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
 ENDGO
 可以把原来的存储过程删除,然后把这个写在查询分析器里来执行,也可以直接在原来的存储过程里改。 @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] 下一页 ◎进入论坛网络编程版块参加讨论
	      |