奇怪的mysql导致asp

奇怪的mysql导致asp,mysql,asp-classic,Mysql,Asp Classic,我有以下代码: strSQL = "SELECT COUNT(*) AS anz FROM tbl_ergebnisse WHERE testavg >0" set rs3 = Conn.Execute(strSQL) Response.Write "Count(*): <br>" if not rs3.eof then Response.Write "Anz: " & rs3("anz") else Response.Write "EOF" end

我有以下代码:

strSQL = "SELECT COUNT(*) AS anz FROM tbl_ergebnisse WHERE testavg >0"
set rs3 = Conn.Execute(strSQL)
Response.Write "Count(*): <br>" 
if not rs3.eof then
    Response.Write "Anz: " & rs3("anz")
else
    Response.Write "EOF" 
end if

strSQL = "SELECT testavg FROM tbl_ergebnisse WHERE testavg >0"
set rs2 = Conn.Execute(strSQL)

Response.Write "Entries: <br>" 
do while not rs2.eof
    Response.Write rs2("testavg") & "<br>"
rs2.MoveNext()
loop

strSQL = "SELECT AVG(testavg) AS mittelwert FROM tbl_ergebnisse WHERE testavg >0"
set rs = Conn.Execute(strSQL)

if not rs.eof then
    Response.Write "Mittelwert: " & rs("mittelwert")
else
    Response.Write "EOF" 
end if
参赛作品:3;3.4.5;

表中数据的屏幕截图可在以下位置找到:www.trinews.at/data.png


有什么建议为什么我会得到一个空的记录集吗?直接在数据库上运行查询将返回正确的值。

我用字段类型为Decimal18,0的SQL Server Express重新创建了您的问题,它按预期工作

尝试使用CDbl将结果转换为双倍,如下所示

strSQL = "SELECT testavg FROM tbl_ergebnisse WHERE testavg >0" 
set rs2 = Conn.Execute(strSQL)  
Response.Write "Entries: <br>"  
do while not rs2.eof     
    Response.Write CDbl(rs2("testavg")) & "<br>" 
rs2.MoveNext() 
loop  



strSQL = "SELECT AVG(testavg) AS mittelwert FROM tbl_ergebnisse WHERE testavg >0"
set rs = Conn.Execute(strSQL)  
if not rs.eof then     
    Response.Write "Mittelwert: " & CDbl(rs("mittelwert"))
else     
    Response.Write "EOF"  
end if 

尝试在MySQL语句中使用CAST将十进制类型转换为ASP ADODB可以理解的数字,否则ASP无法识别来自MySQL的结果并认为它是EOF。例如:

SELECT CAST(SUM(Entry_Data_1) as UNSIGNED) as score FROM contests_entries 

对不起,那没用。原因是,结果集是eof,所以执行else扇区:-非常混乱…您可以添加mysql表及其数据的屏幕截图吗?这是屏幕截图。我尝试了整型,十进制10,5,…很抱歉,我不能附加一些图像,因为我是stackoverflow新手。我添加了一个图像链接。thxI不知道这是否与您在mysql客户端上执行查询有关,但是更改没有完全提交,但是您可以在asp无权访问的同一进程中获得结果。关闭mysql客户端并重新打开以确保更改已提交,然后再次尝试您的网页。如果您选择关闭,问题是否会消失。在分别打开rs2和rs之前关闭rs3和rs2?您使用的是哪个连接器?在版本3.51中通过ODBC连接否,问题仍然存在。我还试图更改sql语句,但也没有更改:-交换第一个和最后一个sql语句以查看发生了什么?也许神奇的东西会回来-
SELECT CAST(SUM(Entry_Data_1) as UNSIGNED) as score FROM contests_entries