【发布时间】:2014-01-21 23:50:29
【问题描述】:
图像已使用image 存储在另一台服务器中。我已经完成了一个查询来获取图像,现在我正在尝试使用 update 查询(也设置为 image)将它放入另一个表中。我收到错误消息“无法将 ByteArray 对象转换为字符串。”
<cfquery name="updateCuppms" datasource="db_PerformanceApp">
UPDATE CUPPMS
SET phoneNumber ='#GetUser.telephoneNumber#',
email = '#GetUser.mail#'
<cfif isdefined(#GetPic.Face#) >
, picture = <cfqueryparam cfsqltype="cf_sql_blob" value="#GetPic.Face#">
</cfif>
WHERE wken = #getEmployees.wken#
</cfquery>
【问题讨论】:
-
您使用的是 SQL Server 2000 吗?如果不是,为什么要使用 IMAGE(已弃用)而不是 VARBINARY(MAX)(未弃用,并且更易于使用,尤其是在这样的上下文中)>
-
FWIW,原始错误的原因是您误用了
isDefined。 IsDefined 需要一个变量的name,即一个简单的字符串。通过在变量#GetPic.Face#周围使用井号,您传递的是它的值,它是二进制的。因此错误。现在已经说过..查询列总是存在的。所以IsDefined无论如何都是错误的函数。正如您最终发现的那样,IsNull()是要走的路:)
标签: sql-server database coldfusion coldfusion-9