在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 and
这个存储过程接受两个输入参数,@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 ""
'zxy是服务器名
else
response.redirect
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.