Jason,

That's why I said to sort the tree in using "DESC" instead of "ASC" on 
the Depth column:

 > - - -*Drivers *(3)
 > - -Software (2)
 > -Support (1)
 > Home (0)

If you pull in descending order, you'll know the max depth from the 
first row, so if it's a matter of using the depth for indenting, just 
use: maxDepth-depth to reverse the depth.

-Dan

On 3/29/2011 3:34 PM, Jason Durham wrote:
>
> The in example I posted, I'm calculating the depth in the select statement.
> The depth is determined by the order in which the row is returned.  If I
> start from a child, the child is returned first (therefore it's 0).  If I
> start from the parent (top level nav), the parent is 0.   Consider this...
>
> Typical nav.. (depth is in parenthesis).  The tree is built from the top
> down.
>
> Home (0)
> -Products (1)
> - -Car (2)
> - -Truck (2)
> -Support (1)
> - -Software (2)
> - - -*Drivers *(3)
>
> Breadcrumbs...  The tree is built from the bottom up.
>
> *Drivers *(0)
> -Software (1)
> - -Support (2)
> - - -Home (3)
>
> The "depth" is backwards.  The depth is not a fixed column.
>
> Like I said... the solution hit me.  The entire site's navigation is
> generated with the correct depth onAppStart().  I'll just cache it via a
> temp table.
>
> Jason Durham
>
>
> On Tue, Mar 29, 2011 at 2:14 PM, Dan G. Switzer, II<[email protected]
>> wrote:
>
>>
>> Why bother with cursors or temp tables at all and just sort across Depth
>> desc instead of Depth asc?
>>
>> -Dan
>>
>> On Tue, Mar 29, 2011 at 2:59 PM, Jason Durham<[email protected]>  wrote:
>>
>>>
>>> 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<[email protected]>
>> 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:343389
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to