论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp教程
Tag:入门,文摘,实例,技巧,iis,表单,对象,上传,数据库,记录集,session,cookies,存储过程,注入,分页,安全,优化,xmlhttp,fso,jmail,application,防盗链,stream,组件,md5,乱码,缓存,加密,验证码,算法,ubb,正则表达式,水印,,日志,压缩,url重写,控件,函数,破解,触发器,socket,ADO,初学,聊天室,留言本,视频教程

存储过程及ASP调用存储过程实现分页(五)

文章类别:Asp | 发表日期:2010-2-1 13:39:23

存储过程及ASP调用存储过程实现分页(五)

另:关于ASP调用存储过程参数简写的问题:ASP调用存储过程可以使用with 命令来简写代码。比如本例中:

……

set cmd = Server.CreateObject("ADODB.Command")

cmd.ActiveConnection = connstr

cmd.CommandText = "dbo.testPROC3"

cmd.CommandType = 4

cmd.CommandTimeout = 0

cmd.Prepared = true

cmd.Parameters.Append cmd.CreateParameter("@tRecordCount", 3, 4)

cmd.Parameters.Append cmd.CreateParameter("@tPageCount", 3, 2)

cmd.Parameters.Append cmd.CreateParameter("@tPageSize", 3, 1,10,tPageSize)

cmd.Parameters.Append cmd.CreateParameter("@PageNo", 3, 1,10,PageNo)

set rs=cmd.Execute()

rs.close()

……

这些代码可以用with命令来简化为:

……

set cmd = Server.CreateObject("ADODB.Command")

with cmd

       .ActiveConnection = connstr

       .CommandText = "dbo.testPROC3"

       .CommandType = 4

        .CommandTimeout = 0

       .Prepared = true

       .Parameters.Append .CreateParameter("@tRecordCount", 3, 4)

       .Parameters.Append .CreateParameter("@tPageCount", 3, 2)

       .Parameters.Append .CreateParameter("@tPageSize", 3, 1,10,tPageSize)

       .Parameters.Append .CreateParameter("@PageNo", 3, 1,10,PageNo)

set rs=.Execute()end with

rs.close()

…..

运行的结果一样。看个人喜欢自行选择。

到了这里你也许还觉得这个存储过程不够完美,要是多个搜索功能然后再分页那就好多好了。呵呵。有的,请到我的百度空间去:http://hi.baidu.com/cool_web,具体地址:

http://hi.baidu.com/cool%5Fweb/b ... 49ee3bb80e2dee.html

这里我就不讲了,但 有个问题有说下对于搜索的要注意SQL搜索语句的优化(将在本文最后讲)如索引。有什么问题再跟我联系:QQ:40623660。要注意的一点就是在ASP页面里在显示数据后有这么一行set rs = rs.NextRecordset   。这行就是接下来要说的第4个例子,也就是返回多个记录集的存储过程。

4、返回多个记录集合的存储过程

在应用中有时候存储过程要用到多个表或返回多个记录集的情况下,在不知道如何获取

①/*=======第4个存储过程=====

这个存储过程比较简单主要是说明怎么读取多个记录集的问题。

注意:记录集的要按顺序来读取。不能跳着读取。

======================*/

USE johnny

go

CREATE PROC testPROC4

AS

SET NOCOUNT ON

BEGIN

       SELECT uName FROM testUser

       SELECT uEmail FROM testUser

       SELECT uQQ FROM testUser

END

②ASP页面:在输入连接数据库字符串后再加入下面的代码

dim cmd

set cmd = Server.CreateObject("ADODB.Command")

cmd.ActiveConnection = connstr         ' connstr是连接字符串

cmd.CommandText = "dbo.testPROC4"

cmd.CommandType = 4

cmd.CommandTimeout = 0

cmd.Prepared = true

set rs=cmd.Execute()

set cmd=nothing

'显示记录

response.Write("下面是第1个显示用户名记录集的信息:<br />")

while not rs.eof

response.Write("<li>"&rs("uName")&"</li><hr />"&VbCrlf)

rs.movenext

wend

response.Write("下面是第2个显示EMAIL记录集的信息:<br />")

set rs=rs.Nextrecordset '当你要显示第2个

while not rs.eof

response.Write("<li>"&rs("uEmail")&"</li><hr />"&VbCrlf)

rs.movenext

wend

response.Write("下面是第3个显示QQ记录集的信息:<br />")

set rs=rs.Nextrecordset '当你要显示第2个

while not rs.eof

response.Write("<li>"&rs("uQQ")&"</li><hr />"&VbCrlf)

rs.movenext

wend

set rs=nothing

保存下。

按F12运行看到的效果如下图:


视频教程列表
文章教程搜索
 
Asp推荐教程
Asp热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058