60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
<cfif thisTag.ExecutionMode is 'end'>
|
|
<cfparam name="ATTRIBUTES.output" type="string">
|
|
<cfparam name="ATTRIBUTES.outputType" type="string" default="map">
|
|
<cfparam name="thisTag.params" type="array"/>
|
|
|
|
|
|
<cffunction name="paramTypeToColumnType">
|
|
<cfargument name="paramType" type="string"/>
|
|
|
|
<cfswitch expression=#ARGUMENTS.paramType#>
|
|
<cfcase value="integer">
|
|
<cfreturn "integer"/>
|
|
</cfcase>
|
|
<cfcase value="numeric">
|
|
<cfreturn "decimal"/><!---*** --->
|
|
</cfcase>
|
|
<cfcase value="datetime">
|
|
<cfreturn "timestamp"/>
|
|
</cfcase>
|
|
<cfcase value="string">
|
|
<cfreturn "varchar"/>
|
|
</cfcase>
|
|
<cfdefaultcase>
|
|
<cfreturn "varchar"/>
|
|
</cfdefaultcase>
|
|
</cfswitch>
|
|
</cffunction>
|
|
|
|
|
|
|
|
<cfswitch expression=#ATTRIBUTES.outputType#>
|
|
|
|
<cfcase value="map">
|
|
<cfloop from=1 to=#arrayLen(thisTag.params)# index="i">
|
|
<cfset "CALLER.#ATTRIBUTES.output#.#thisTag.params[i].name#"=thisTag.params[i].value/>
|
|
</cfloop>
|
|
</cfcase>
|
|
|
|
<cfcase value="query">
|
|
<cfset columnList=""/>
|
|
<cfset columnTypeList=""/>
|
|
<cfloop from=1 to=#arrayLen(thisTag.params)# index="i">
|
|
<cfset columnList=listAppend(columnList, thisTag.params[i].name)/>
|
|
<cfset columnTypeList=listAppend(columnTypeList, paramTypeToColumnType(thisTag.params[i].type))/>
|
|
</cfloop>
|
|
<cfset qOut=queryNew(columnList,columnTypeList)/>
|
|
<cfset queryAddRow(qOut)/>
|
|
<cfloop from=1 to=#arrayLen(thisTag.params)# index="i">
|
|
<cfset querySetCell(qOut, thisTag.params[i].name, thisTag.params[i].value)/>
|
|
</cfloop>
|
|
<cfset "CALLER.#ATTRIBUTES.output#"=#qOut#/>
|
|
</cfcase>
|
|
|
|
<cfdefaultcase>
|
|
<cfthrow type="custom" message="Unsupported output type '#ATTRIBUTES.outputType#'" detail=""/>
|
|
</cfdefaultcase>
|
|
|
|
</cfswitch>
|
|
</cfif>
|