首先,我的cconfig是:
语言:ColdFusion 10(并安装更新11)
DB是MS SQL Server 2012
使用jtds jdbc(试过版本1.2.6,1.2.8和1.3.0)
我目前在运行查询时遇到问题,我使用cfqueryparam和cfsqltype cf_sql_nvarchar。问题是页面只是挂起。如果我查看ColdFusion的应用程序日志,我会看到以下错误: “net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setNString(ILjava / lang / String;)V包含或处理的特定文件序列是:”后跟测试文件名。
我在nvarchar列上运行了一个非常基本的选择查询,但是页面没有加载并且记录了该错误。
我知道它必须与jtds jdbc有关,好像我通过常规的sql驱动程序连接它会完美地工作。
之前有人经历过吗?如果是这样,你的解决方案是什么?
由于
答案 0 :(得分:2)
我进行了快速搜索,结果显示jtds does not support setNString()
。我检查了1.3.1的驱动程序源代码,如上所述in the comments here,该方法未实现:
“..实现getNString时,代码只包含// TODO 自动生成的方法存根并抛出新的AbstractMethodError(); ..“
因此,您可能需要使用cf_sql_varchar
, combined with the "String Format" setting,就像之前的版本一样。显然,另一种选择是使用不同的驱动程序(支持setNString()
的驱动程序,例如Adobe的驱动程序或MS SQL Server driver)。
答案 1 :(得分:1)
尝试使用cf_sql_varchar
。根据{{3}},cf_sql_nvarchar
不是有效选项,您应该使用cf_sql_varchar