在coldfusion中使用nvarchar cfsqltype和jtds jdbc

时间:2013-08-26 15:31:37

标签: sql-server jdbc coldfusion

首先,我的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驱动程序连接它会完美地工作。

之前有人经历过吗?如果是这样,你的解决方案是什么?

由于

2 个答案:

答案 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