Skip to main content
Inspiring
September 24, 2009
Answered

Can't output query from CFC even though it's a query object

  • September 24, 2009
  • 1 reply
  • 715 views

I'm trying to output a query from a CFC but I keep getting "Complex object types cannot be converted to simple values.".

Here's the code:

promoManager.cfc

<cfcomponent displayname="promoManager">

    <cffunction name="init" returntype="promoManager" hint="Initializes the controller">
        <cfargument name="dsn" type="string" required="yes">
        <cfset variables.dsn = arguments.dsn>
        <cfreturn this>
    </cffunction>
   
    <cffunction name="getPromotions" returntype="query">
        <cfset var qGetPromotions = "">
        <cfquery name="qGetPromotions" datasource="#variables.dsn#">
            SELECT promoID, promoName, promoCode, promoDesc, promoFromDt, promoToDt, introDiscount, proDiscount, execDiscount, premDiscount
            FROM promotions
            ORDER BY promoName
        </cfquery>
        <cfreturn qGetPromotions>
    </cffunction>
   
</cfcomponent>

test.cfm

<cfset promoManager = createObject("component","cfcs.promoManager").init(attributes.dsn)>

<cfoutput>#IsQuery(promoManager.getPromotions())#</cfoutput></p> <--- this outputs YES

<cfset getPromotions = promoManager.getPromotions()>

<p><cfdump var="#getPromotions#"></p> <--- this dumps a query object

<cfoutput query="#getPromotions#">here<br /></cfoutput> <--- THIS GENERATES AN ERROR!

TIA

    This topic has been closed for replies.
    Correct answer JR__Bob__Dobbs-qSBHQ2

    Does it work if you omit the pound signs in the query attribute value ( <cfoutput query="getPromotions"> )?

    1 reply

    JR__Bob__Dobbs-qSBHQ2Correct answer
    Inspiring
    September 24, 2009

    Does it work if you omit the pound signs in the query attribute value ( <cfoutput query="getPromotions"> )?

    BalanceAuthor
    Inspiring
    September 24, 2009

    Jesus...can't believe I missed that. Of course, that worked. GRRRRR