【发布时间】: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