2013-02-20 47 views
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 

预先升值。

回答

2

Execute returns a RecordSet, not an Integer

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

if HowMany > 50 then 

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

假设您目前有49个注册...和10个人都在同一时间注册。所有10个注册将被计数49 ...所以你会结束59总数。

+0

谢谢!这个伎俩......非常感谢! – sullivansg 2013-02-21 14:22:02

0

除了上面你有时需要确保你的对象是一个整数,例如

if Cint(HowMany) > 50 
+0

感谢John的帮助! – sullivansg 2013-02-21 14:22:45