在ASP中运行存储过程要使用command对象。command对象代表一个命令(例如一个SQL查询或一个SQL存储过程)。在开始使用ADO之前,必须建立一个ODBC数据源,ODBC数据源包含了如何与一个数据提供者进行连接的信息。数据源共有三种类型:用户数据源、系统数据源、文件数据源。在此,应建立系统数据源。如:网上考试系统中建立的系统数据源名为testsys,SQL Server中的考试数据库名为text,在数据库test中若干数据表,其中stu为学生注册登记表,stu中至少有两个字段stuname(学生名),stupwd(学生密码)。
1. 存储过程的建立
可在SQL SERVER中建立存储过程,使用enterprise manager或使用SQL SERVER Query Analyzer。
操作过程大致可分为如下两步:
第一步:在SQL SERVER 中启动enterprise manager展开test数据库,在stored procedure 上执行右键快捷列表框的nwe stored procedure指令,可以看到程序代码的编辑窗口。
第二步:在“TEXT”框输入stored procedure的程序代码。
例1:统计注册学生数量的存储过程sp_stucount 的建立
create procedure sp_stucount as return(select count(*) from stu)
统计一个数据表中的记录总数,效率最高的方法就是建立一个存储过程。
例2:网上考试系统的注册页面中用户名与密码的验证,所用的存储过程sp_proc的建立
create procedure sp_proc (@zc_name varchar(30),@zc_pwd varchar(30)) as select * from stu where stuname=@zc_name and stupwd=@zc_pwd
这个存储过程接受两个输入参数,@zc_name向存储过程传递注册名,@zc_pwd向存储过程传递注册密码。
2. 在ASP中执行存储过程
在ADO中提供了对存储过程的访问,它需要用到command对象,在这个对象上用户可以直接执行SQL SERVER的存储过程,而命令中所需要的参数可以借助于其属性parameters来进行处理。下面以register.asp为例来说明如何调用存储过程,在register.asp中调用了存储过程sp_pro
<!--#include virtual="adovbs.inc"--> <% if request.servervariables("request.method")="post" then num=trim(request.form("name")) passwd=trim(request.form("pwd")) set conn=server.createobject("adodb.connection")'创建connection对象conn dn="dsn=testsys" conn.open dn set md.activeconnection=conn md.commandtype=adcmdstoredproc'指定commandtype属性为adcmdstoredproc表示要处理的是一个存储过程 md.commandtext="sp_proc"'指定存储过程sp_proc set mfp=md.createparameter("name",advarchar,adparaminput,30) md.parameters.append mfp set msp=md.createparameter("pwd",advarchar,adparaminput,30) md.parameters.append msp'向存储过程传递参数 md("name")=num md("pwd")=passwd set rs=md.execute'执行 if not rs.eof then response.redirect "http://zxy/shome.htm"'zxy是服务器名 else response.redirecthttp://zxy/fail.htm end if end if %> //用户注册 <html> <head> <title>请注册账号和密码</title> </head> <body> <h2><center> </center><center> </center></h2> <h2><center>请输入账号和密码</center></h2> <form method="post" action="http://zxy/register.asp"> <p><center>请输入账号:<input type="text" name="name"></p></center> <p><center>请输入密码:<input type="password" name="pwd"></p></center> <p><center><input type="submit" value="注册" name="cmdres"> <input type="reset" value="重置" name="res"></center> </form> </body> </html>
register.asp是用户注册的页面,用户在注册页面中输入用户名和密码,提交表单后,用户输入的用户名和密码被传递给存储过程,然后用execute方法执行存储过程。如果表stu中存在这个用户名和相应的密码,则进入学生考试主页shome.htm,否则进入注册失败主页false.htm.
来源:https://www.cnblogs.com/biye/articles/2338063.html