1

我收到此错误 -

[Macromedia][SQLServer JDBC Driver]The hexadecimal string is invalid

当我运行以下查询时 -

<cfquery datasource="#getDatasource()#" name="qryAdminActivity">
    select * from v2_admin_activity
      where adminId = <cfqueryparam cfsqltype="cf_sql_numeric" value="#arguments.adminId#"> 
</cfquery>

数据库中有问题的行看起来像这样

在此处输入图像描述

有人知道这里有什么问题吗?

::::编辑::::

我发现问题出在数据库中的这个字符串上 -

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;activities&gt;&lt;activity&gt;&lt;date&gt;{ts &apos;2013-02-19 16:36:43&apos;}&lt;/date&gt;&lt;query&gt;Test,,,1,2013-02-19 16:36:43.625,1&lt;/query&gt;&lt;className&gt;moduleDAO&lt;/className&gt;&lt;functionName&gt;addNewSubModule&lt;/functionName&gt;&lt;type&gt;Add&lt;/type&gt;&lt;/activity&gt;&lt;/activities&gt; 

现在谁能告诉我这有什么问题?

数据库中的列类型是 varchar(max)

4

3 回答 3

1

刚刚面临同样的问题。这对我来说是一个 CF 查询缓存(虽然没有使用 cachedwithin)。

原因

就我而言,这是由于 SQL 表字段类型发生了变化。我错误地将字段设置为 varbinary,并继续处理 CFC(SQL 查询)和调用的方法,直到我遇到该错误 - 即使在将字段类型更改为 varchar 之后也是如此。

解析度

只需在 cfquery 中输入任何内容,我将愚蠢的 1=1 添加到 where 语句中,刷新了我的课程,瞧!我现在要从我的查询中删除多余的文本。

希望这可以帮助!

于 2014-05-23T16:06:33.657 回答
0

这个错误是发生在查询上还是结果显示上?您如何显示该查询的输出?它是否试图解析结果中的 XML?该 XML 有效吗?我发现在 SQL Server 中将 XML 存储为 XML 数据类型以外的任何数据类型有时会在尝试再次将其视为 XML 时导致问题。我想这将取决于您最终如何使用该 XML 字符串。

我建议您处理每个动态 CF 变量并用有效的硬编码值替换它们,直到您可以将其缩小到导致问题的那个。并尝试用另一个值替换数据库中的那个 xml。看起来它可能正在尝试将 varchar(max) 解析为 XML。

于 2013-02-19T20:05:52.873 回答
0

事实证明,从查询中删除 cfqueryparam 标记后,它开始工作 -

<cfqueryparam cfsqltype="cf_sql_numeric" value="#arguments.adminId#">

adminId = #arguments.adminId#

奇怪但有效。

感谢大家的回答。

于 2013-02-22T11:25:55.193 回答