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

rxiao 2003-12-01 06:36:37
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.缺点
呵呵,请高手发飙
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cueixu1 2003-12-02
  • 打赏
  • 举报
回复
强烈建议不要这么做~
nchen123 2003-12-02
  • 打赏
  • 举报
回复
强烈推荐你看一看这篇文章:
Why Caching A DataBase Connection Is A Bad Idea

http://www.codeproject.com/asp/dbobjects.asp

// ------------------
// Archimond 阿克蒙德
bamboo2000 2003-12-01
  • 打赏
  • 举报
回复
Session本身就占资源,其中再放个很占资源的Connection,太不好了吧,如果做一个网上办公系统,就几个人用的话,可以考虑,如果做一个供多人访问的站点的话,可能服务器提供商会跟你……
zl9732 2003-12-01
  • 打赏
  • 举报
回复
1、注销session变量
2、方便了点(个人认为)
3、太耗服务器资源、随时可能丢失这个session
rxiao 2003-12-01
  • 打赏
  • 举报
回复
与数据库连接一直维持,会不会反而增大服务器的负荷
如果把连接写入session里,会不会反而占用了更多的服务器资源(session)
好像可以用这种方法实现认证,而不必再特别的设置一个session来保存用户登陆信息
继续讨论
DeltaCat 2003-12-01
  • 打赏
  • 举报
回复
1. session.abandon 是释放所有SESSION

2. 优点:安全性好一点,在用户退出或超时后,如果用HISTORY返回,不能再执行 数据库操作

3. 缺点: 太耗服务器资源
N1rvana 2003-12-01
  • 打赏
  • 举报
回复
另外,安全性倒没什么,个人意见。。
N1rvana 2003-12-01
  • 打赏
  • 举报
回复
session.abandon是注销Session

这种连接方式。。。。看他的用意是把打开的conn放入Session,这样做的用处(或者说优点),我觉得比较有可能是:
1、在其他不包含conn.asp的页面中也可以使用这个数据库连接,也就是说,整个站点,只要首页包含了conn.asp就可以了,其他页面可以不包含;
2、在一次会话期间,也可以说某一访问者一次对网站的访问过程中(假设Session未超时),只执行一次数据库连接对象的打开,而不是像一般的做法,用户访问站内的任何一个包含数据库连接的页面都要进行一次数据库连接的动作;从而试图达到降低服务器负荷的目的。

我觉得的确有可能通过这样的做法降低对服务器的负荷,不过没试过,不敢下定论:)

至于缺点,
1、不符合常规,所以就不够直观;
2、一旦Session过期,除非再次调用conn.asp页面否则无法开启数据库连接,也就不能正常访问站点;

这是个以前没见过的思路,呵呵,我会自己去试试的:)
rxiao 2003-12-01
  • 打赏
  • 举报
回复
session.abandon应该是注销session变量吧
但是为什么要注销呢?
我觉得这种连接方式为了使数据库连接一直维护

安全性不好是什么意思?
monkeys 2003-12-01
  • 打赏
  • 举报
回复
1.关闭注销session
2.能够连接上数据库
3.安全性能不是很好
leiaming 2003-12-01
  • 打赏
  • 举报
回复
1、绑定session变量
3、一量session过期,就不能连接数据库
至于优点到没想过

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧