I was experimenting with a QueryAppend() function when I came across an interesting caveat to query variables. In ColdFusion, queries are passed around by reference. That is, if you pass a query to a method, such as QueryAddRow(), no query is returned because the original query object is updated by reference; however, this does not always seem to be the case. In my experimentation, I found that QueryAddRow() did in fact update the original query:
- <cfset QueryAddRow( ARGUMENTS.QueryOne ) />
... but, changing the pointer of the query did NOT change the original reference:
- <cfset ARGUMENTS.QueryOne = 3 />
This one leaves the original query alone and only affects the local variable, ARGUMENTS.QueryOne. I am sure this has to due with when the variable value is dereferenced or evaluated, but it seems to be a bit confusing.
Looking For A New Job?
- Full Stack Angular/Rails Engineer @ newly funded Health-IT startup at Dorsata
- Part-time remote DBA needed at Bridge
- Senior Developer Wanted for International Cloud Company at Giva, Inc.
- ColdFusion Developer - jQuery, PrimeUI, ORACLE DB at ComSpec International, Inc.
- Jr. ColdFusion Developer - Full Time / Telecommuting is ok. at InterCoastal Net Designs