On Thu, Mar 15, 2012 at 1:59 PM, Jason King <[email protected]> wrote:
> Probably not the smartest question, but just want to be sure.
No such thing as a dumb question!
>
> Do I need to declare a variable for each value I expect to be returned? I
> only need a single argument (photo id), but I might have 15 variables
> returned (photo url, filename, created date, caption, etc). Is this what
> gets put in the <cfreturn> block?
Well you can only return one value from a function with CFRETURN (i.e.
there is no CFRETURN *block*, it's just <cfreturn myVar /> and that's it),
so you need to bundle that stuff up in a data container of some sort, be
that an array, struct, query object, whatever.
>
> For instance, the query would generate a variable of queryName.photo_url.
> Do I need to set a value of 'getPhoto.photo_url' = queryName.photo_url so
> that when I want to actually use that value I don't have to use the
> variable name that the query generated? Does this make sense?
>
You can return the entire query object if you want. Just be aware for
thread safety that you need to var scope any variables generated within the
function, or turn on auto-var scoping in OpenBD.
I don't have any idea about your data, etc. so this may not be exactly
right but here's the gist of it:
<cffunction name="getPhoto" access="public" output="false"
returntype="query">
<cfargument name="photoID" type="numeric" required="true" />
<cfset var photoInfo = 0 />
<cfquery name="photoInfo" datasource="whatever">
SELECT * FROM photo WHERE id = <cfqueryparam
value="#arguments.photoID#" cfsqltype="cf_sql_integer" />
</cfquery>
<cfreturn photoInfo />
</cffunction>
If you want to return a different datatype change the returntype in the
opening function tag and obviously get your query data and put that into
whatever data structure you want to return.
--
Matthew Woodward
[email protected]
http://blog.mattwoodward.com
identi.ca / Twitter: @mpwoodward
Please do not send me proprietary file formats such as Word, PowerPoint,
etc. as attachments.
http://www.gnu.org/philosophy/no-word-attachments.html
--
online documentation: http://openbd.org/manual/
google+ hints/tips: https://plus.google.com/115990347459711259462
http://groups.google.com/group/openbd?hl=en