title: ASP classic, reading and then writing to database
body: <p>I have a page where a database lookup is done, and if a value is found some response is sent back to the user and then the database value is deleted.</p>
  
  <p>I'm calling my delete sub after I've checked the variable but it's like this never happened, although i know the sub ran since the value is now gone from the database.</p>
  
  <p>It seems like the page is loading twice and on the second pass the database value has gone and so it shows as if the database value was never found, but it had to have been found in order to have deleted it (as this was a condition for running the delete sub).</p>
  
  <p>I realize this sounds insane but I've been on this for 2 days and have no idea what's going on. I've tried disabling caching from within IIS and also changing my code so that a value is posted to the database instead of deleting a record and I still get the same thing where my server seems to check the future value of the database before calling the routine that changes it.</p>
  
  <p>Has anyone seen similar behavior to this when reading and writing to the same record on a single page?</p>
  
  <p>Code: </p>
  
  
  
  <pre class="lang-vb prettyprint-override"><code>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 '" &amp; testcode &amp; "'"
  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 '"&amp;     testcode &amp;"' " 
      objcomm5.commandtype = &amp;H0001
  
      objcomm5.execute
  else
      response.write "Can't be found!"
  end if
  </code></pre>