I know I'm a little late to the game here, but wouldn't the easier way be
just to union an explicitly set row?
It's a LOT less code and lets the db take the load.

<cfquery name="GetParks" datasource="cfdocexamples">
 SELECT PARKNAME, REGION, STATE, cORDER = 2
FROM Parks
 Where REGION = 'Southeast Region'

UNION

SELECT TOP 1
PARKNAME = 'myName',
 REGION = 'myRegion',
STATE = 'myState',
 cORDER = 1
FROM Parks
 ORDER BY cORDER, ParkName, State
</cfquery>



On Mon, Aug 2, 2010 at 3:00 PM, Richard White <rich...@j7is.co.uk> wrote:

>
> thanks to all posts, and thanks Ria, i like this method :)
>
> > You can refer to this link to appendQuery
> > http://www.bennadel.com/blog/114-ColdFusion-QueryAppend-qOne-qTwo-.
> > htm
> > I guess you should go with method one as of my understanding. Posting
> > example here.
> >
> > appendQuery.cfm
> > <cfquery
>
> > name="GetParks" datasource="cfdocexamples"
>
> > cachedwithin="#CreateTimeSpan(0, 6, 0, 0)#">
> >           SELECT PARKNAME, REGION, STATE
>
> >       FROM Parks
> >               Where REGION = 'Southeast Region'
>
> >       ORDER BY ParkName, State
> >       </cfquery>
> > <cfset testQuery = queryNew("PARKNAME,REGION,STATE","varchar,varchar,
> > varchar")>
> > <cfset queryAddrow(testQuery,1)>
> >
> > <cfset test1 = createObject('component','appendQuery')>
> > <cfset resultQuery = test1.QueryAppend(testQuery,GetParks)>
> > <cfdump var="#resultQuery#">
> > <cfabort>
> >
> > <cfset test1 = createObject('component','appendQuery')>
> > <cfset resultQuery = test1.QueryAppend2(testQuery,GetParks)>
> > <cfdump var="#resultQuery#">
> >
> > appendQuery.cfc
> > <cffunction name="QueryAppend" access="public" returntype="query"
> > output="false"
> > hint="This takes two queries and appends the second one to the first
> > one. Returns the resultant third query.">
> >
> > <!--- Define arguments. --->
> > <cfargument name="QueryOne" type="query" required="true" />
> > <cfargument name="QueryTwo" type="query" required="true" />
> > <cfargument name="UnionAll" type="boolean" required="false"
> > default="true" />
> >
> > <!--- Define the local scope. --->
> > <cfset var LOCAL = StructNew() />
> >
> > <!--- Append the second to the first. Do this by unioning the two
> > queries. --->
> > <cfquery name="LOCAL.NewQuery" dbtype="query">
> > <!--- Select all from the first query. --->
> > (
> > SELECT
> > *
> > FROM
> > ARGUMENTS.QueryOne
> >
> > )
> >
> > <!--- Union the two queries together. --->
> > UNION
> >
> > <!---
> > Check to see if we are going to care about duplicates. If we don't
> > expect duplicates then just union all.
> > --->
> > <cfif ARGUMENTS.UnionAll>
> > ALL
> > </cfif>
> >
> > <!--- Select all from the second query. --->
> > (
> > SELECT
> > *
> > FROM
> > ARGUMENTS.QueryTwo
> > )
> > </cfquery>
> >
> > <!--- Return the new query. --->
> > <cfreturn LOCAL.NewQuery />
> > </cffunction>
> >
> > >> i have a query which has sort criteria applied at mysql level.
> > >>
> > >> i want to add a row at the top of the query after mysql has
> > finished with it.
> > >>
> > >> If i use the queryaddrow method it adds the row to the bottom of
> > the query
> > >>
> > >> is there anyway to get it to add it as the first item?
> > >
> > >You could add the new row in the SQL itself using a UNION statement,
> > >couldn't you?
> > >
> > >Otherwise, you could add it using queryAddRow, querySetCell, etc,
> > but
> > >you'd have to figure out how to get things in the order that you
> > want
> > >them. You could create a new query, add the row to the new query,
> > then
> > >loop through the old query and add each row to the new query. Or you
> > >could use queryAddRow and querySetCell with the existing query, but
> > >have a sortable field for all rows including the new row, then use
> > >query of query to sort the query again.
> > >
> > >But I'd go with doing this in your SQL if I were you.
> > >
> > >Dave Watts, CTO, Fig Leaf Software
> > >http://www.figleaf.com/
> > >http://training.figleaf.com/
> > >
> > >Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
> > >GSA Schedule, and provides the highest caliber vendor-authorized
> > >instruction at our training centers, online, or onsite.
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:336007
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to