我在经典ASP IIS 8.0中使用JScript,从MySQL 5.5数据库生成的ADO记录集中检索一个数值,用作数字。该记录集很好,并且该值返回视觉上准确的值,但是,将对象强制转换为数字使用会在IIS日志中产生以下错误:
"[对象]不是数字";
代码:
var total = Number(rs("kount"));
当试图追踪问题时,我看到了正确的结果:
Response.Write(typeof rs("kount")); // RETURNS "object"
Response.Write(rs("kount")); // RETURNS 1
如果Number((失败,则parseInt(rs("kount"(,10(;也失败了(我试过了,也产生了"[对象]不是数字",所有其他记录集变体(rs.Fields(1(,rs.Fields.Item(1((都以完全相同的方式失败,那么我如何将对象rs("kount"(转换为数字1,或者它应该是什么数字?
@Lankymart花了很多钱!!
事实证明,当你执行我为返回值和总数所做的原始查询时,使用count(*) as kount
失败了,因为count(*(返回的是LONG,而不是整数,因此,Number((和String((函数都会阻塞它。
当我这样做而不是CAST(count(*) as CHAR(32))
时,它就起作用了;它将int(11(强制转换为char(32(,Number(([和String((]可以识别并将其转换为Number,因此,问题完全解决了。
谢谢大家!