ASP经典,阅读然后写入数据库

时间:2015-03-20 23:42:12

标签: sql ms-access vbscript asp-classic time-travel

我有一个完成数据库查找的页面,如果找到一个值,会将一些响应发送回用户,然后删除数据库值。

我在检查变量后调用了我的删除子,但是这种情况从未发生过,虽然我知道子运行,因为该值现在从数据库中消失了。

似乎页面正在加载两次,并且在第二次传递时数据库值已经消失,因此它显示好像从未找到数据库值,但必须找到它才能删除它(因此是运行删除子的条件。

我意识到这听起来很疯狂,但我已经在这2天了,并且不知道发生了什么。我已经尝试从IIS中禁用缓存并且还更改我的代码,以便将值发布到数据库而不是删除记录,我仍然得到同样的事情,我的服务器似乎在调用之前检查数据库的未来值改变它的例程。

在单个页面上读取和写入同一条记录时,有没有人看到类似的行为?

代码:

referer = Request.ServerVariables ("HTTP_REFERER")
session("testcode") = right(referer,16)

testcode = session("testcode")

set objcommand = server.createObject("adodb.command")
objcommand.activeconnection = strconnect2
objcommand.commandtext="SELECT codeval,stamp,used from code where     codeval like '" & testcode & "'"
objcommand.commandtype = 1
set objrs = objcommand.Execute
set objcommand = nothing 
countvar = 0

While not objrs.EOF

    if not objrs("used") = true then
        foundcode = true
        countvar = countvar+1
    end if


    objrs.MoveNext
wend


if foundcode = true then
    response.write "Found you!"

    set objcomm5 = server.createobject("adodb.command") 
    objcomm5.activeconnection = strconnect2 
    objcomm5.commandtext = "update code set used = true where codeval like '"&     testcode &"' " 
    objcomm5.commandtype = &H0001

    objcomm5.execute
else
    response.write "Can't be found!"
end if

0 个答案:

没有答案