coldfusion – cfquery:找不到句柄x的预处理语句

我们间歇性地收到以下错误,但经常:

执行数据库查询时出错. [Macromedia] [SQLServer JDBC驱动程序] [SQLServer]无法找到带有句柄1的预准备语句.

我实现了这个问题的两个解决方案,我能够找到 –

>在查询的末尾添加分号(据说强制重新编译查询)
>将此MS-SQL放在查询的末尾:OPTION(RECOMPILE)

我应用了修复1,错误在当天的剩余时间内停止.第二天错误又回来了.

我应用了修复2,发生了同样的事情 – 直到第二天再没有错误.

我确实理解每当我使用< cfqueryparam>自动使用预准备语句,但是每次使用查询时都没有办法强制db“重新准备”而不依赖于缓存语句?

请注意,我没有此Cf服务器的管理员权限.

Cf版本是9.0.0

SQL Server 9.0.3054.

违规查询:

<cfquery datasource="#dsn#" name="q" maxrows="1">
SELECT
ID
FROM
tableOne
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.ID#">
ORDER BY ID
</cfquery>

谢谢

最佳答案 您可以将CachedWithin属性设置为cfquery语句.

<cfquery 
    name="GetParks" datasource="#dsn#" name="q" maxrows="1" 
    cachedwithin="#CreateTimeSpan(0, 0, 0, 0)#">

上面的示例将始终将查询保留在缓存之外

点赞