Vbscript Command:Prepared语句未返回预期的记录数

Vbscript Command:Prepared语句未返回预期的记录数,vbscript,asp-classic,mariadb,adodb,Vbscript,Asp Classic,Mariadb,Adodb,我正在使用ADODB.Command在经典ASP中执行准备好的语句,但是MariaDB返回的记录数不正确,我不知道为什么 下面的代码给出了我遇到的问题的示例: <% Dim conn, comm, rs, SQL, SQLparam set conn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") conn.Open("DS

我正在使用ADODB.Command在经典ASP中执行准备好的语句,但是MariaDB返回的记录数不正确,我不知道为什么

下面的代码给出了我遇到的问题的示例:

<%

    Dim conn, comm, rs, SQL, SQLparam

    set conn = Server.CreateObject("ADODB.Connection")
    set rs = Server.CreateObject("ADODB.Recordset")
    conn.Open("DSN=localhost")

        ' Standard execution            

        SQL = "SELECT * FROM tests WHERE ID > 0"

        set rs = conn.Execute(SQL)  

        response.write "<p>Results: " & uBound(rs.getRows(),2) & "</p>"

        ' Prepared statement execution          

        SQL = "SELECT * FROM tests WHERE ID > ?"
        SQLparam = 0

        Set comm = Server.CreateObject("ADODB.Command")

            comm.ActiveConnection = conn
            comm.CommandText = SQL
            comm.Parameters.Append(comm.CreateParameter("@param",varType(SQLparam),1,250,SQLparam)) 

            set rs = comm.Execute()

            response.write "<p>Results: " & uBound(rs.getRows(),2) & "</p>"

        set comm = nothing

    rs.close() : set rs = nothing   
    conn.close() : set conn = nothing

%>
我觉得我肯定错过了一些明显的东西。我使用了“CreateParameter”设置,但MariaDB总是返回错误数量的记录,不管我更改了什么


另一个奇怪的是,如果我将SQL更改为执行SELECT计数,则prepared语句将返回正确的计数值,当我尝试选择它们时,它不会返回正确的行数。

经过进一步的测试,这似乎是驱动程序的问题。我使用的是MariaDB,但使用的是MySQL ODBC连接器(8.0 Unicode驱动程序)。切换到MariaDB ODBC连接器后,准备好的语句按预期工作。我很抱歉在发布之前没有进一步测试


我想在尝试执行某些数据库功能时,MariaDB和MySQL ODBC连接器是不兼容的,因为到目前为止,我从未遇到过任何问题。

向我们展示结果SQL。我不确定是否有可能获得准备语句的结果SQL。这个问题已经被修复,它是一个不兼容的ODBC MySQL连接器。
Results: 4433 ' as expected
Results: 10