页面打开很长时间之后再提交会出错

ssh78 2009-12-13 02:57:27
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '=' 附近有语法错误。

D:\...\AAP\../inc/power.asp,行 140

可是出错的那行,平常不会出错呀,只有在页面打开好长时间之后再提交的时候出这个错
set rsbumen=server.CreateObject("adodb.recordset")
sqlbumen="select * from v_department where id="&bumenid
rsbumen.open sqlbumen,oconn,1,3-----------------这行是140行,在pb执行时不出错


我的代码里从没有写时间超时啥的,怎么页面打开很长时间之后再提交会出错呢?

...全文
90 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlcsdf 2009-12-14
  • 打赏
  • 举报
回复
还有一种可能啊.就是值的类型可能不匹配.
sqlbumen="select * from v_department where id='"&bumenid&"'"
这样就可以了.
黑心 2009-12-14
  • 打赏
  • 举报
回复
不论是cookie 还是session都要判断一下

bumenid 是不是空
ssh78 2009-12-14
  • 打赏
  • 举报
回复
我重新从cookie里取得。
Response.Cookies("budgetbm")=rs("departid")
Response.Cookies("budgetbm").Expires=Date+365


if session("bumen")<>true then
session("bumen")=request.Cookies("budgetbm")
end if
gxq323 2009-12-14
  • 打赏
  • 举报
回复
把session里的值放入隐藏域里面保存起来,如果session为空的话就取隐藏域里读,这样就丢失不了了,但是请空比较难,异常退出的话保留时间比较长
fupx2008 2009-12-14
  • 打赏
  • 举报
回复
Session.Timeout=1000 (想用多长时间就自己写)
阿泰 2009-12-13
  • 打赏
  • 举报
回复
实质上session等不到7天,因为的服务器的池每天会回收一次,此时session就失效了。
所以一般最长是1天
但是也没人BT到今天开个页面,明天再回来点一下吧,呵呵。

其实,抛开这个错误,楼主的写法也有问题,一点都没进行保护。。
即使Session丢失了,也应该捕获到,做成主动提示,而不是由数据库上报出错来
还有要防注入等等

比如
If Not IsNumeric(bumeni) Then
Response.Write "错误的参数,请重新操作"
Response.End
Else
'...执行SQL
End If
a2019503a 2009-12-13
  • 打赏
  • 举报
回复
肯定是session超时造成的 id取值不正确 提交到数据库字段错误 楼上说的把session设为9999可行 大约7天 足够了 可是这样也有弊端 所有登陆的用户都保存7天的数据 耗费服务器资源 建议不要修改 时间长了再登陆下 适当的增加session值
阿泰 2009-12-13
  • 打赏
  • 举报
回复
一般服务器默认session 20 分钟失效
你可以再ASP内页的头部增加一行

Session.timeout=9999

来延长Session的有效时间。
不过这种方法仍然是不可靠的,建议使用url传值或cookie的处理方法。

或者可参考这篇文章
设置ASP页的Session过期时间的问题
ssh78 2009-12-13
  • 打赏
  • 举报
回复
那该怎么使session取来的值不过期呢?
ssh78 2009-12-13
  • 打赏
  • 举报
回复
是session取来的
Dogfish 2009-12-13
  • 打赏
  • 举报
回复
看来是你的sql语句有问题。使用错误陷阱,在出错的时候把语句打印出来看看就知道了。

按你说的,你的那个变量是否有session那过来的。
dj4002 2009-12-13
  • 打赏
  • 举报
回复
dtwbq4q241hg1
dj4002 2009-12-13
  • 打赏
  • 举报
回复
ryyenw553253211
dj4002 2009-12-13
  • 打赏
  • 举报
回复
fhhrhtryr5y5y
阿泰 2009-12-13
  • 打赏
  • 举报
回复
'=' 附近有语法错误。 说明
sqlbumen="select * from v_department where id="&bumenid

中的bumenid 这个值丢失了,你是怎么取这个值的,用session么?

28,390

社区成员

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

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