CFQUERYPARAM无法在ColdFusion 10中工作

Evi*_*mes 1 sql coldfusion sql-server-2008 coldfusion-10

我将三个整数传递给CFC中的函数,如下所示:

<cfscript>
Q = TOPBIKES.GetTopBikes(127, 10, 11);
writeDump(Q);
</cfscript>
Run Code Online (Sandbox Code Playgroud)

CFC使用这些整数运行如下查询:

<!--- GET TOP BIKES --->
<cffunction name="GetTopBikes">
    <cfargument name="FeatureID" required="true">
    <cfargument name="MinWins" required="true">
    <cfargument name="RecordsToReturn" required="true">
    <cfscript>
        LOCAL.FeatureID = ARGUMENTS.FeatureID;
        LOCAL.MinWins = ARGUMENTS.MinWins;
        LOCAL.RecordsToReturn = ARGUMENTS.RecordsToReturn;
    </cfscript>
    <!--- RUN QUERY --->        
    <cfquery name="Q">
        SELECT      TOP #LOCAL.RecordsToReturn#
                    B.BikeID, 
                    B.BikeName,
                    BS.PCTWins
        FROM        Bikes B
                    LEFT JOIN BikeScores BS
                        ON B.BikeID = BS.BikeID
        WHERE       BS.Wins > <cfqueryparam cfsqltype="cf_sql_integer" value="#LOCAL.MinWins#">
                    AND B.BikeID IN (   SELECT  BikeID
                                        FROM    Bikes_Features
                                        WHERE   FeatureID = <cfqueryparam cfsqltype="cf_sql_integer" value="#LOCAL.FeatureID#">
                                    )   
        ORDER BY    BS.PCTWins desc
    </cfquery>
    <cfreturn Q>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

问题是我无法让cfqueryparam在SQL语句的TOP部分工作.

这些工作:

SELECT      TOP 11
SELECT      TOP #LOCAL.RecordsToReturn#
Run Code Online (Sandbox Code Playgroud)

这不起作用:

SELECT      TOP <cfqueryparam 
                  cfsqltype="cf_sql_integer" 
                  value="#LOCAL.RecordsToReturn#">
Run Code Online (Sandbox Code Playgroud)

但是,我可以在查询中的任何其他位置使用.我知道它是一个整数,并且在其他地方使用时可以替代FeatureID.

有关为什么CFQUERYPARAM不在TOP工作的任何线索?

Hen*_*nry 7

SELECT TOP #val(LOCAL.RecordsToReturn)#

SQL语句的某些部分不能使用cfqueryparam,例如From之后的Top或表名.