在ASP中运行SQL SERVER 存储过程

在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>&nbsp;</center><center>&nbsp;</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">&nbsp;<input type="reset" value="重置" name="res"></center>

</form>

</body></html>

register.asp是用户注册的页面,用户在注册页面中输入用户名和密码,提交表单后,用户输入的用户名和密码被传递给存储过程,然后用execute方法执行存储过程。如果表stu中存在这个用户名和相应的密码,则进入学生考试主页shome.htm,否则进入注册失败主页false.htm.

posted @ 2012-02-04 16:13  doubledu  阅读(360)  评论(0编辑  收藏  举报