I've been working on a CF9 project, and I'm trying to take full advantage of the cfscript syntax for my components. I have many cases where I'm using dynamic SQL based on the existence of an optional argument in a function. In CF8 and below it'd look something like this:
<cffunction name="testFunc" returntype="query"> <cfargument name="testArg" type="string" required="false" /> <cfquery name="testQuery" datasource="testDSN"> SELECT * FROM TBL <cfif structKeyExists(arguments.testArg)> WHERE COL = '#arguments.testArg#' </cfif> </cfquery> <cfreturn testQuery /> </cffunction> Is there an elegant way to do the same thing using cfscript? I haven't had any luck with string concatenation in the setSQL method of the query object (and it's kind of clunky to boot). I'd also hate to have to write two almost-identical blocks of code one with the where clause and one without and then apply the correct string to setSQL at runtime, although I assume that would solve my problem. I'd also like to use query binding, just to make things more complicated. Is there some sort of cleaner approach that I'm missing, or is this just one of the downsides to using cfscript? Thanks in advance! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:344002 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm