网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP基础之存储过程应用全接触(下)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/06
上面的存储过程中,输入当前页号及每页记录数,返回当前页的记录集,总页数及记录总数。为了更具典型性,将记录总数以返回值的形式返回。以下是调用该存储过程的ASP代码(具体的分页操作略去):

  1. ''**调用分页存储过程**   
  2. DIM pagenow,pagesize,pagecount,recordcount   
  3. DIM MyComm,MyRst   
  4. pagenow = Request("pn")   
  5. ''自定义函数用于验证自然数   
  6. if CheckNar(pagenow) = false then pagenow = 1   
  7. pagesize = 20   
  8. Set MyComm = Server.CreateObject("ADODB.Command")   
  9. with MyComm   
  10. .ActiveConnection = MyConStr ''MyConStr是数据库连接字串   
  11. .CommandText = "getUserList" ''指定存储过程名   
  12. .CommandType = 4 ''表明这是一个存储过程   
  13. .Prepared = true ''要求将SQL命令先行编译 ''返回值(记录总量)   
  14. .Parameters.Append .CreateParameter("RETURN",2,4)   
  15. ''出参(总页数)   
  16. .Parameters.Append .CreateParameter("@iPageCount",3,2)   
  17. ''入参(当前页号)   
  18. .Parameters.append .CreateParameter("@iPage",3,1,4,pagenow)   
  19. ''入参(每页记录数)   
  20. .Parameters.append .CreateParameter("@iPageSize",3,1,4,pagesize)   
  21. Set MyRst = .Execute   
  22. end with   
  23. if MyRst.state = 0 then ''未取到数据,MyRst关闭   
  24. recordcount = -1   
  25. else   
  26. MyRst.close ''注意:若要取得参数值,需先关闭记录集对象   
  27. recordcount = MyComm(0)   
  28. pagecount = MyComm(1)   
  29. if cint(pagenow)> =cint(pagecount) then pagenow=pagecount   
  30. end if   
  31. Set MyComm = Nothing   
  32. ''以下显示记录   
  33. if recordcount = 0 then   
  34. Response.Write "无记录"   
  35. elseif recordcount > 0 then   
  36. MyRst.open   
  37. do until MyRst.EOF   
  38. ......   
  39. loop   
  40. ''以下显示分页信息   
  41. ......   
  42. else ''recordcount=-1   
  43. Response.Write "参数错误"   
  44. end if  

对于以上代码,只有一点需要说明:同时返回记录集和参数时,若要取得参数,需先将记录集关闭,使用记录集时再将其打开。

7. 返回多个记录集的存储过程

本文最先介绍的是返回记录集的存储过程。有时候,需要一个存储过程返回多个记录集,在ASP中,如何同时取得这些记录集呢?为了说明这一问题,在userinfo表中增加两个字段:usertel及usermail,并设定只有登录用户可以查看这两项内容。

  1. /*SP7*/  
  2.  CREATE PROCEDURE dbo.getUserInfo   
  3. @userid int,   
  4. @checklogin bit   
  5. as   
  6. set nocount on   
  7. begin   
  8. if @userid is null or @checklogin is null return   
  9. select username   
  10. from dbo.[usrinfo]   
  11. where userid=@userid   
  12. --若为登录用户,取usertel及usermail   
  13. if @checklogin=1   
  14. select usertel,usermail   
  15. from dbo.[userinfo]   
  16. where userid=@userid   
  17. return   
  18. end   
  19. go  

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号