CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

讨论:将数据库连接保存在session中

楼主rxiao(学)2003-12-01 18:36:37 在 Web 开发 / ASP 提问

conn.asp文件  
  <%  
  session.abandon  
  function   opendb(DBPath,sessionname,dbsort)  
  dim   conn  
  if   not   isobject(session(sessionname))   then  
  Set   conn=Server.CreateObject("ADODB.Connection")  
  DBPath=server.MapPath("database/db.mdb")  
  conn.Open   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   DBPath  
  set   session(sessionname)=conn  
  end   if  
  set   opendb=session(sessionname)  
  end   function  
  %>  
   
  页面中的调用  
  <%   set   conn=opendb("oabusy","conn","accessdsn")   %>  
   
  1.session.abandon什么用?  
  2.这种连接方式的优点  
  3.缺点  
  呵呵,请高手发飙 问题点数:100、回复次数:11Top

1 楼leiaming(民族英雄-江湖最后一把杀猪刀-已经穷的只剩素质)回复于 2003-12-01 18:51:42 得分 5

1、绑定session变量  
  3、一量session过期,就不能连接数据库  
  至于优点到没想过Top

2 楼monkeys(Myron.Liu)回复于 2003-12-01 18:53:41 得分 5

1.关闭注销session  
  2.能够连接上数据库  
  3.安全性能不是很好Top

3 楼rxiao(学)回复于 2003-12-01 20:21:06 得分 0

session.abandon应该是注销session变量吧  
  但是为什么要注销呢?  
  我觉得这种连接方式为了使数据库连接一直维护  
   
  安全性不好是什么意思?Top

4 楼N1rvana(新手上路)回复于 2003-12-01 20:46:51 得分 20

session.abandon是注销Session  
   
  这种连接方式。。。。看他的用意是把打开的conn放入Session,这样做的用处(或者说优点),我觉得比较有可能是:  
  1、在其他不包含conn.asp的页面中也可以使用这个数据库连接,也就是说,整个站点,只要首页包含了conn.asp就可以了,其他页面可以不包含;  
  2、在一次会话期间,也可以说某一访问者一次对网站的访问过程中(假设Session未超时),只执行一次数据库连接对象的打开,而不是像一般的做法,用户访问站内的任何一个包含数据库连接的页面都要进行一次数据库连接的动作;从而试图达到降低服务器负荷的目的。  
   
  我觉得的确有可能通过这样的做法降低对服务器的负荷,不过没试过,不敢下定论:)  
   
  至于缺点,  
  1、不符合常规,所以就不够直观;  
  2、一旦Session过期,除非再次调用conn.asp页面否则无法开启数据库连接,也就不能正常访问站点;  
   
  这是个以前没见过的思路,呵呵,我会自己去试试的:)Top

5 楼N1rvana(新手上路)回复于 2003-12-01 20:49:10 得分 0

另外,安全性倒没什么,个人意见。。Top

6 楼alexzhang00(三角猫)回复于 2003-12-01 21:03:34 得分 20

1.   session.abandon   是释放所有SESSION  
   
  2.   优点:安全性好一点,在用户退出或超时后,如果用HISTORY返回,不能再执行   数据库操作  
   
  3.   缺点:   太耗服务器资源Top

7 楼rxiao(学)回复于 2003-12-01 21:11:29 得分 0

与数据库连接一直维持,会不会反而增大服务器的负荷  
  如果把连接写入session里,会不会反而占用了更多的服务器资源(session)  
  好像可以用这种方法实现认证,而不必再特别的设置一个session来保存用户登陆信息  
  继续讨论Top

8 楼zl9732(zl9732)回复于 2003-12-01 22:01:18 得分 10

1、注销session变量  
  2、方便了点(个人认为)  
  3、太耗服务器资源、随时可能丢失这个session  
  Top

9 楼bamboo2000(龙的传人)回复于 2003-12-01 23:34:50 得分 25

Session本身就占资源,其中再放个很占资源的Connection,太不好了吧,如果做一个网上办公系统,就几个人用的话,可以考虑,如果做一个供多人访问的站点的话,可能服务器提供商会跟你……Top

10 楼inelm(木野狐)回复于 2003-12-02 00:09:41 得分 10

强烈推荐你看一看这篇文章:  
  Why   Caching   A   DataBase   Connection   Is   A   Bad   Idea  
   
  http://www.codeproject.com/asp/dbobjects.asp  
   
  //   ------------------  
  //   Archimond   阿克蒙德  
  Top

11 楼cueixu1(紫之龙)回复于 2003-12-02 00:32:21 得分 5

强烈建议不要这么做~Top

相关问题

  • 讨论一个深一点的问题:数据库保存文件,UP有分
  • 数据库保存报错
  • 数据库基础讨论!
  • 关于数据文件保存问题(最好不用数据库),请讨论,帮忙解决
  • 讨论:大家平时有没有用XML来代替数据库保存数据?
  • 怎样在VB中保存数据库?
  • 在数据库中保存bmp字段
  • 数据库中如何保存路径
  • 文本文件保存到数据库?
  • 保存图片至数据库

关键词

  • 数据库
  • 连接
  • 注销
  • 服务器
  • 页面
  • 用户
  • asp
  • abandon
  • 变量
  • session

得分解答快速导航

  • 帖主:rxiao
  • leiaming
  • monkeys
  • N1rvana
  • alexzhang00
  • zl9732
  • bamboo2000
  • inelm
  • cueixu1

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo