Nevermind... all I could see were nails.  I'll create a temp table for the
regular navigation and use that table for breadcrumbs (the depth is
accurately created on that query).

Jason Durham


On Tue, Mar 29, 2011 at 1:44 PM, Jason Durham <jqdur...@gmail.com> wrote:

> I apologize if this is an inappropriate place to ask this question.
>
> I'm using a CTE for a recursive query to assemble navigation.  In the CTE,
> I'm creating a column that contains the depth of the navigation.  This depth
> is ultimately inserted into the class of an HTML element.   I'm refactoring
> how my breadcrumbs are created and want to use a similar method.  The catch
> is, breadcrumbs start from the bottom of a recursive tree and work their way
> up.  This is causing undesired behavior on the depth calculation.  The
> bottom-most element is 0.  It's parent is 1.  It's grandparent is 2 (and so
> forth).  I need to reverse the order of this field.
>
> I'm currently trying to use a cursor to loop back over the CTE and update
> the depth field manually.  However, it appears that I'm I can't access the
> data stored in the temporary table (CTE) from with in the cursor.  Should I
> be going about this a different way?
>
> Here is the SQL...
>
> DECLARE @THEID INT
> SET @THEID=88;
>
> DECLARE BC_Cursor CURSOR FOR
> WITH Breadcrumbs(Navigation_ID, Parent_ID, Navigation_Name, Depth) AS
> (
>     SELECT Navigation_ID, Parent_ID, Navigation_Name, 0
>     FROM Navigation
>     WHERE Navigation_ID = @THEID
>
>     UNION ALL
>
>     SELECT n.Navigation_ID, n.Parent_ID, n.Navigation_Name, bc.Depth+1
>     FROM Navigation n
>     INNER JOIN Breadcrumbs bc
>     ON bc.Parent_ID = n.Navigation_ID
> )
> SELECT * FROM Breadcrumbs OPTION (MAXRECURSION 8)
> FOR UPDATE;
>
> DECLARE @maxRows int;
> SET @maxRows = @@ROWCOUNT; <--- Will be used to renumber the depth
>
> OPEN BC_Cursor;
> FETCH NEXT FROM BC_Cursor;
> WHILE @@FETCH_STATUS = 0
>     BEGIN
>         FETCH NEXT FROM BC_Cursor;  <--- This prints each row.  Instead of
> outputting them, I need to update and ultimately return the whole (virtual)
> table.
>     END;
> CLOSE BC_Cursor;
>
> DEALLOCATE BC_Cursor;
>
>
> Thanks in advance.
>
> Jason Durham
>


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

Reply via email to