1

我为此使用经典的 ASP。我的目标是弄清楚在显示“抱歉注册已满”消息之前已经输入了多少条目。我认为仅计算数据库中的行数会很简单,但会出现类型不匹配错误。我不在乎行中的内容...只是在寻找原始数字。

Set ConnObj = Server.CreateObject("ADODB.Connection")
ConnObj.Provider="Microsoft.Jet.OLEDB.4.0;Data Source=my-database-here"
ConnObj.Open

mysql="SELECT COUNT(*) FROM Contest"

Set HowMany = ConnObj.Execute(mysql)

if HowMany > 50 then

response.Write "Sorry registration is full"

response.end

end if

非常感谢提前。

4

2 回答 2

2

Execute返回一个RecordSet,而不是一个Integer

Set rs = ConnObj.Execute(mysql)
Set Howmany = rs(0)

if HowMany > 50 then

但是,请注意,此解决方案并没有真正解决并发问题。

假设您目前有 49 个注册……并且有 10 个人同时注册。所有 10 个注册将被计算为 49...所以你最终将获得 59 个总数。

于 2013-02-20T21:53:10.343 回答
0

除了上述之外,您有时还需要确保您的对象是一个整数,例如

if Cint(HowMany) > 50
于 2013-02-21T12:27:56.673 回答