Arrays 如何将结构中数组的索引设置为变量(Coldfusion)
这是我遇到的第一个错误: CFSQLTYPE CF_SQL_VARCHAR的无效数据[d6-2014-74,] 下面是相应的代码Arrays 如何将结构中数组的索引设置为变量(Coldfusion),arrays,coldfusion,Arrays,Coldfusion,这是我遇到的第一个错误: CFSQLTYPE CF_SQL_VARCHAR的无效数据[d6-2014-74,] 下面是相应的代码 <cfset x = Arguments.surveyDocNo> <cfprocparam cfsqltype="cf_sql_varchar" value="#x#"> 为了解决这个问题,我将代码更改为: <cfset x = Arguments.surveyDocNo[1]> 但是,返回此错误: 500您已
<cfset x = Arguments.surveyDocNo>
<cfprocparam cfsqltype="cf_sql_varchar" value="#x#">
为了解决这个问题,我将代码更改为:
<cfset x = Arguments.surveyDocNo[1]>
但是,返回此错误:
500您已尝试将java.lang.String类型的标量变量作为具有成员的结构取消引用
所以数组问题已经解决了,但我不知道如何修复第二个错误
<cfdump var="#arguments.surveyDocNo#">
我假设您有时将
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#">
我假设您有时将
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#">
在第一个屏幕截图中,surveyDocNo是一个数组,但在第二个屏幕截图中,它是一个字符串。如果将变量更改为不再是数组,则可以返回原始引用参数。surveyDocNo
而不带索引值。@Miguel-F感谢您的快速响应。也许我理解不正确,但当我回到原始引用时,它又变成了一个数组。为了避免混淆,请您转储参数。surveyDocNo
变量(不是整个结构)并发布屏幕截图。@Leigh我添加了您要求的信息。谢谢。它显然是一个数组,所以我看不出
如何可能抛出错误“…试图取消对标量变量的引用”。似乎是不同的代码导致了这个错误,或者我们知道有更多的事情发生了…?在第一个屏幕截图中,surveyDocNo是一个数组,但在第二个屏幕截图中,它是一个字符串。如果将变量更改为不再是数组,则可以返回原始引用参数。surveyDocNo
而不带索引值。@Miguel-F感谢您的快速响应。也许我理解不正确,但当我回到原始引用时,它又变成了一个数组。为了避免混淆,请您转储参数。surveyDocNo
变量(不是整个结构)并发布屏幕截图。@Leigh我添加了您要求的信息。谢谢。它显然是一个数组,所以我看不出
如何可能抛出错误“…试图取消对标量变量的引用”。似乎是不同的代码导致了这个错误,或者是我们意识到有更多的事情在发生。。。?