asp session问题,请老师解答,送分50。 (50分)

  • 主题发起人 主题发起人 laoxie3
  • 开始时间 开始时间
L

laoxie3

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
在globa.asa文件中有这样的定义。
session("bhx")=0
.......
在a.asp文件中有这样的处理。(之前假设还有一asp文件录入了bh的值。)
session("bhx")=request.form("bh")
response.redirect "b.asp"
......
在b.asp文件中有这样的处理。
sqlsj="select bh from jbk"
jl.open conn sqlsj,3,3
jl.addnew
jl("bh")=session("bhx")
jl.update
jl.close
.......
请问,如果有多台工作站在处理该事务的过程中,是否会出现写库混乱的可能。
原因是,有可能多人同时写bh的值。多人同时提交,多人同时写库?
如有这样的可能,请问该如何处理?
请老师帮助解决,不胜感谢!
 
老师们是否觉得问题不值一答????5555555
 
首先要说,我没做过类似的试验,但
理论上是不会的,因为session变量是存储在服务器端的变量,依赖服务器的cookie,只要保证a.asp与b.asp是存储在同一台服务其中,或用户访问a.asp与b.asp文件时,这两个文件是在同一台服务器上就可以了,
另外,有人说如果在不同的服务其中也没问题,需要特殊的设置,就可以共享session变量,但这两方面的实验我都没做过,你应该做一下这个实验,
例如在a.asp与b.asp中分别的对应位置写入:response.write(session("bhx"))看其值是否相同,另外,如果在asp.net中这种方法是不可用的,还有,我也不是什么老师,也正在学习,希望我们能互相进步。
 
你的考虑是有道理的.
你的意思是否这个BH是数据表的主键?
如果多个用户必须共享这个BH变量, 那么应该用application变量, 而不该用session变量. 因为session之间是不通信的. 完全有可能产生的Session变量是相同的, 从而出现写数据库出错.
MS声明application变量是同步安全的, 就是说多个用户同时操作这个变量, 也不会出错.
但是最好的办法, 莫过于数据表里主键用一个自动递增的序列号类型, 插入数据时不必考虑主键值的问题, 数据库帮你做好它.
 
后退
顶部