asp-classic - 结果始终为零
问题描述
在我的网络服务器上执行这段代码时,结果总是 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.33333...(当前数据在数据库中可用)
解决方案
利用:
aspDBcount = cInt(Recordset("MyRowCounts")) * 1
在 MySQL 中,SELECT COUNT()
返回一个BIGINT
整数类型并且需要转换才能操作它并在 VBScript 中正确使用它。
CInt
只能在-32,767
和之间转换数字32,767
如果SELECT COUNT()
超出此范围,则需要CLng
改用,范围-2,147,483,648
为2,147,483,647
您也可以使用CDbl
,这有点奇怪。它可以转换巨大的数字并且似乎没有溢出。Invalid number
如果您尝试传递一个大得离谱的整数,它最终会返回一个错误。
推荐阅读
- python - Sharepoint 使用 Python o365 api 下载最后修改的文件
- node.js - AWS Etheruem 节点 Websocket 连接保持关闭
- java - 从 oracle 12c 升级到 oracle 19c 导致查询性能下降
- python - 如何使用自定义颜色映射将灰度图像转换为 RGB?
- node.js - 如何检查对象是否已从 Glacier 恢复?
- java - 混淆不适用于 kotlin 类和字段名称
- kubernetes - Kubernetes & Terraform:安装到所有 K8s 节点以防止 ImagePullBackOff
- css - 如何在弹性框中添加元素之间的空间
- java - 使用 ServletFileUpload 上传图像会在本地环境和 aws 环境中提供两种不同的文件大小
- android - 无法使用“建议快捷方式 In-App Promo SDK”打开快捷方式 Intent