I applied your fix, except that instead of a try/catch, I do a
structkeyexists check for dbType. Let me know if you find any other
problems.

Blair

On Wed, Jun 15, 2011 at 1:59 AM, Matthew Williams <
[email protected]> wrote:

> I'm proposing a change to install/components/farcryui.cfc
> (getDBTypes).  It's freaking out in two places, one being a conversion
> of an array value to string, the other for the base and default DB
> types.  The below code worked for me after the change.  Basically, I
> changed the <cfset stmd> call to use a temp variable so as to pull out
> the Array value correctly.  The old code (on railo) was complaining
> about trying to serialize and array.  The other change was to put
> dbType additions into a <cftry>.  The base/default packages don't have
> a DB type and were failing.  In addition, you end up with a blank
> querycell.  Moving the addrow into the loop address the blank value,
> and the cftry gracefully fails when there is no dbType assigned to a
> gateway.
>
> <cffunction name="getDBTypes" returntype="query" output="false"
> access="public" hint="Returns the key, label, and dbowner usage of all
> available database types">
>                <cfset var stTypes = structnew() />
>                <cfset var thistype = "" />
>                <cfset var thisitem = "" />
>                <cfset var qDBTypes =
> querynew("key,label,usesDBOwner","varchar,varchar,bit") />
>                <cfset var stMD = "" />
>                <cfset var tmpType="" />
>
>                <cfset stTypes =
> createobject("component","farcry.core.packages.lib.db").getDBTypes() /
> >
>
>                <cfloop collection="#stTypes#" item="thistype">
>                <cfset tmpType=sttypes[thistype]>
>                <cfset tmpType=tmpType[1]>
>                        <cfset stMD =
> getMetadata(createobject("component",tmpType)) />
>
>                        <cftry>
>                                <cfloop list="#stMD.dbType#"
> index="thisitem">
>                                        <cfif listfirst(thisitem,":") eq
> thistype>
>                                                <cfset queryaddrow(qDBTypes)
> />
>                                                <cfset
> querysetcell(qDBTypes,"label",listlast(thisitem,":")) />
>                                        </cfif>
>                                </cfloop>
>                                <cfset querysetcell(qDBTypes,"key",thistype)
> />
>                                <cfset
> querysetcell(qDBTypes,"usesDBOwner",stMD.usesDBOwner) />
>                                <cfcatch></cfcatch>
>                        </cftry>
>                </cfloop>
>                <cfreturn qDBTypes />
>        </cffunction>
>
>
> Matthew Williams
> Geodesic GraFX
> www.geodesicgrafx.com/blog
>
> --
> You received this message cos you are subscribed to "farcry-dev" Google
> group.
> To post, email: [email protected]
> To unsubscribe, email: [email protected]
> For more options: http://groups.google.com/group/farcry-dev
> --------------------------------
> Follow us on Twitter: http://twitter.com/farcry

-- 
You received this message cos you are subscribed to "farcry-dev" Google group.
To post, email: [email protected]
To unsubscribe, email: [email protected]
For more options: http://groups.google.com/group/farcry-dev
--------------------------------
Follow us on Twitter: http://twitter.com/farcry

Reply via email to