Data structures 是否可以使用参数动态填充CFC?

Data structures 是否可以使用参数动态填充CFC?,data-structures,dynamic,coldfusion,arguments,cfc,Data Structures,Dynamic,Coldfusion,Arguments,Cfc,以下代码错误: <cfdbinfo datasource="#Application.DSN#" name="getCols" type="columns" table="#this.tableName#"> <cftry> <cfquery name="getColumnDetails" dbtype="query"> SELECT COLUMN_NAME,TYPE_NAME FROM getCols WHERE IS_PRIMA

以下代码错误:

<cfdbinfo datasource="#Application.DSN#" name="getCols" type="columns" table="#this.tableName#">
<cftry>
  <cfquery name="getColumnDetails" dbtype="query">
    SELECT COLUMN_NAME,TYPE_NAME
    FROM getCols
    WHERE IS_PRIMARYKEY = 'NO'
  </cfquery>
  <cfcatch>
    <cfset this.ErrorState = true>
    <cfthrow message="General DB Error">
  </cfcatch>
</cftry>

<cfloop query="getColumnDetails">
  <cfargument name="#getColumnDetails.COLUMN_NAME#" displayName="values" type="Any" required="false" />
</cfloop>

选择列名称,键入名称
来自getCols
_PRIMARYKEY='NO'在哪里
但是我真的很想知道,是否可以动态地设置CFC的参数,或者干脆传入一个结构并处理它是否更好

谢谢
罗伯

没有机会

有两种方法,如您所说,不定义cfargument标记,而是查找它们与StructKeyExists(ARGUMENTS,AdDynamicName)一起传入,或者创建代码生成器并将这些方法写入文件。

不可能


正如您所说,有两种方法不定义cfargument标记,而是查找它们是否与StructKeyExists(ARGUMENTS,AdDynamicName)一起传入,或者创建一个代码生成器并将这些方法写入文件。

我尝试过的一种方法与您所做的类似:

<cffunction name="doSomethingWithDatabase">
<cfargument name="potentialColumns" type="string">
<cfargument name="columnValues" type="struct">

然后循环遍历潜在列的列表,使用列表中的每个元素作为要在columnValues结构中搜索的索引。如果这个值存在于结构中,那么你是好的;否则,将忽略更新中的该列

然后,您可以这样调用函数:

获取您要查找的列

或者,您可以忽略potentialColumns参数,只在cfc中获取该信息:

<cffunction name="doSomethingWithDatabase">
<cfargument name="columnValues" type="struct">
<cfset potentialColumns = getMyColumns()>
.... loop....

.... 环

我尝试做与您正在做的事情类似的事情的一种方式是:

<cffunction name="doSomethingWithDatabase">
<cfargument name="potentialColumns" type="string">
<cfargument name="columnValues" type="struct">

然后循环遍历潜在列的列表,使用列表中的每个元素作为要在columnValues结构中搜索的索引。如果这个值存在于结构中,那么你是好的;否则,将忽略更新中的该列

然后,您可以这样调用函数:

获取您要查找的列

或者,您可以忽略potentialColumns参数,只在cfc中获取该信息:

<cffunction name="doSomethingWithDatabase">
<cfargument name="columnValues" type="struct">
<cfset potentialColumns = getMyColumns()>
.... loop....

.... 环

并为问题标题中的拼写错误道歉-周五4点这样的事情肯定会发生@你可以在这里编辑你自己的东西。如果有足够的声誉,你也可以编辑其他人的内容据我所知,CFC不能有争论,我想你指的是s?并为问题标题中的拼写错误道歉-周五4点这样的事情肯定会发生@你可以在这里编辑你自己的东西。如果有足够的声誉,你也可以编辑其他人的内容据我所知,CFCs不能有论点,我想你指的是CFCs?