结果始终为零

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结果始终为零相关的知识,希望对你有一定的参考价值。

在我的网络服务器上执行这段代码时,结果始终是0 (ZERO)

任何人都可以预见到这个问题(解决方案更好:-D)

Dim MyTotalPages
Dim Recordset
Dim Connection
Dim aspDBcount
Dim ShowRowCount

ShowRowCount = 3 ' Fixed size

Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")

ConnString = "DRIVER={mysql ODBC 5.3 Unicode Driver}; SERVER=server_address; UID=a_username;PASSWORD=a_password; OPTION=3; Port=a_port"

Connection.Open ConnString

SQL = "SELECT COUNT(*) AS MyRowCounts FROM `a_database`.`a_table`;"

Set Recordset = Connection.Execute(SQL)

aspDBcount = (Recordset("MyRowCounts") * 1) 

Recordset.Close

MyTotalPages = (aspDBcount * 1) / (ShowRowCount * 1))

Response.Write aspDBcount & "html_NEW_LINE" & ShowRowCount & "HTML_NEW_LINE" & MyTotalPages 
  • 输出为10,3,0
  • 应该是10,3,3.333333 ......(数据库中有当前数据)
答案

使用:

aspDBcount = cInt(Recordset("MyRowCounts")) * 1

在MySQL中,SELECT COUNT()返回一个BIGINT整数类型,需要转换才能操作它并在VBScript中正确使用它。

CInt只能在-32,76732,767之间转换数字

如果你的SELECT COUNT()超出这个范围,你需要使用CLng,它有一系列的-2,147,483,6482,147,483,647

你也可以使用CDbl,这有点奇怪。它可以转换巨大的数字,似乎没有溢出。如果你试图传递一个可笑的大整数,它最终会返回一个Invalid number错误。

以上是关于结果始终为零的主要内容,如果未能解决你的问题,请参考以下文章

UIButton.titleLabel.frame.size 始终为零值

Android SMS Verification API 结果码始终为 0

Qt 数组的 GLSL 统一始终为零

UILocalNotification 的 UserInfo 始终为零

值始终为零 [关闭]

测试 CLGeocoder geocodeAddressString 方法地标始终为零