这是我收到的第一个错误: CFSQLTYPE CF_SQL_VARCHAR
的数据无效[d6-2014-74 ,,]这是相应的代码。
<cfset x = Arguments.surveyDocNo>
<cfprocparam cfsqltype="cf_sql_varchar" value="#x#">
要解决这个问题,我将代码更改为:
<cfset x = Arguments.surveyDocNo[1]>
然而,这会返回此错误:
500您试图将类型为java.lang.String的标量变量取消引用为具有成员的结构。
所以阵列问题已修复,但我不知道如何修复第二个错误。
<cfdump var="#arguments.surveyDocNo#">
答案 0 :(得分:4)
我假设您有时将surveyDocNo
参数作为字符串传递,有时也作为字符串数组传递。
<!--- if argument is passed as array, take the first element --->
<cfif isArray(Arguments.surveyDocNo) and (not arrayIsEmpty(Arguments.surveyDocNo))>
<cfset x = Arguments.surveyDocNo[1]>
<cfelse>
<cfset x = Arguments.surveyDocNo>
</cfif>
<!--- if the provided argument is not a string, throw an exception --->
<cfif not isSimpleValue(x)>
<cfthrow type="IllegalArgumentException" message="The provided value for argument [surveyDocNo] is invalid. Expected a string.">
</cfif>
<cfprocparam cfsqltype="cf_sql_varchar" value="#x#">