手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp编程>列表

在ASP中使用存储过程

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  使用SQL Server数据库,你可使用存储过程直接在数据库中存储并运行功能强大的任务,而不在自己的ASP脚本中实现它们,因为存储过程位于数据库服务器上,因而具有更高的性能并能减少网络负载。本文旨在通过实例说明在ASP中如何调用存储过程并传递输入参数的方法。

  下面我们就通过一个实例来说明这种技术的使用方法(文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):

  安装SQL Server后,数据库pubs中自带存储过程byroyalty,语句为(@percentage就是输入参数):

Alter PROCEDURE byroyalty @percentage int
AS
select au_id from titleauthor where titleauthor.royaltyper = @percentage

  ASP源程序:
<% @LANGUAGE = VBScript %>
<!--#include file="adovbs.inc"-->
<%
Response.Expires = 0
Dim Cnn, objRS,strConn,objCmd, objParam
Const strIn = 30    '存储过程的输入参数,为简化程序, 直接设置该值.

' 建立连接
Set Cnn = Server.CreateObject("ADODB.Connection")
strConn ="Provider=sqloledb;" & _
"Data Source=16.62.5.8;Initial Catalog=pubs;User Id=sa;Password=;"
Cnn.Open strConn

' 创建Command对象
Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.CommandText = "byroyalty"     '存储的过程名
objCmd.CommandType = adCmdStoredProc   '将 CommandText 作为存储过程名进行计算
Set objCmd.ActiveConnection = Cnn

'创建并定义参数
Set objParam = objCmd.CreateParameter ("@percentage", adInteger, adParamInput, 4, strIn)
objCmd.Parameters.Append objParam
Set objRS = objCmd.Execute()
%>

<HTML>
<BODY>

  下面输出结果, 输入参数为:
<%= objCmd.Parameters("@percentage") %>
<BR><BR> au_id<Br>
<%
While Not objRS.EOF
Response.Write Server.HTMLEncode(objRS("au_id")) & "<Br>"
objRS.MoveNext
Wend
objRS.close: Cnn.close
Set objRS = Nothing: Set Cnn = Nothing
Set objParam = Nothing: Set objCmd = Nothing
%>
</BODY>
</HTML>

  除了可传递输入参数外,还可以使用返回码和输出参数返回值,由于篇幅关系,笔者不再举例,有兴趣可去参考VB6.0的MSDN文档中有关ADO的部分和SQL Server7.0 的帮助文档。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!