我们间歇性地收到以下错误,但经常:
执行数据库查询时出错. [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)#">
上面的示例将始终将查询保留在缓存之外