【问题标题】:Has it just not saved the updates yet for reading them back?它只是没有保存更新以供阅读吗?
【发布时间】:2021-04-18 20:28:47
【问题描述】:

这是一个儿童网站上的配对游戏,我需要随机化问题答案的顺序。它位于使用经典 ASP 和 Access 数据库的旧服务器上。这些行将在 JavaScript 代码中用作答案的顺序。当我查看数据库时,代码似乎可以工作,但是每行写入页面的内容是 [“-”]。正如我所说,在页面加载后查看时,数据库具有随机数和相应的字母。代码很基本,但我已经尽量简化它以找到原因。

ID = trim ("0" & Request.QueryString("ID"))
If Not isnumeric(ID) Then Response.Redirect "default.asp"

Set rs = dbcon.Execute ("Delete * FROM tblTemp;")
strSQL = "INSERT INTO tblTemp ( fldQuestion, fldAnswer) "
strSQL = strSQL + "Select fldQuestion, fldAnswer FROM tblQuestions WHERE fldListID=" & ID & ";"
Set rs = dbcon.Execute (strSQL)

Set rs = dbcon.Execute ("Select ID FROM tblTemp;")
While Not rs.EOF
    Randomize
    x = int(rnd * 16000)
    Set rs2 = dbcon2.Execute ("UPDATE tblTemp SET fldOrder = " & x & " WHERE ID = " & rs.fields("ID") & ";")
    rs.MoveNext
Wend

Set rs = dbcon.Execute ("Select ID FROM tblTemp ORDER By fldOrder;")
x = 65
While Not rs.EOF
    Set rs2 = dbcon2.Execute ("UPDATE tblTemp SET fldChar = """ & Chr(x) & """ WHERE ID = " & rs.fields("ID") & ";")
    x = x + 1
    rs.MoveNext
Wend

Set rs = dbcon.Execute ("Select * FROM tblTemp ORDER By fldOrder;")
While Not rs.EOF
    Response.Write "        """ & rs.fields("fldOrder") & "-" & rs.fields("fldChar") & """," & vbcrlf
    rs.MoveNext
Wend

【问题讨论】:

  • 您使用 VBscript 随机化和更新表格?如果您希望数据库以随机顺序返回结果,您不能只使用ORDER BY RAND() 吗?
  • "Select * FROM tblQuestions WHERE fldListID = 1 ORDER By rand()" - 表达式中未定义函数 'rand'。
  • 也尝试使用MSAccess函数RND,得到响应“BOF或EOF为真”

标签: vbscript asp-classic adodb


【解决方案1】:

如果我们不考虑进程不足的事实,问题在于建立两个连接dbcon和dbcon2。将最后一个选择更改为 dbcon2,您应该会得到预期的结果

Set rs = dbcon2.Execute ("Select * FROM tblTemp ORDER By fldOrder;")

或者,在任何地方都摆脱 dbcon2,因为它似乎没有多大意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多