Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2007, 08:12
Avatar de oabareload
oabareload
 
Fecha de Ingreso: junio-2006
Ubicación: Distrito Federal, México
Mensajes: 57
Antigüedad: 17 años, 10 meses
Puntos: 0
Como creo una función recursiva para SQL Server 2005 y ASP

Me he dado cuenta de que cuando quiero hacer una función recursiva en SQL Server 2005 y ASP, y no me deja:

Código PHP:
<%
Function 
buscarArea(id_area,mas)

    
qry="SELECT * FROM AREAS WHERE prearea = '"&id_area&"' ORDER BY nombre ASC"
    
set rsAREAS conn.Execute(qry)
    Do While 
not rsAREAS.EOF
        response
.write rsAREAS("id_area") &" - "rsAREAS("nombre")
        
qry="SELECT * FROM AREAS WHERE prearea = '"&rsAREAS("id_area")&"' ORDER BY nombre ASC"
        
set rsEXISTE=conn.Execute(qry)
        if 
not rsEXISTE.EOF then
            mas
=mas&"-"
            
Call buscarArea(rsAREAS("id_area"),mas)
        
end if
        
rsAREAS.MoveNext
    Loop

End 
Function
%> 
Se supone que mi tabla esta hecha de la siguiente manera:

Id_area = Identificador principal
nombre = Nombre del Área
prearea = Nombre del Área padre

Y esta función la llamo haciendo primero una búsqueda de las Áreas padres:

Código PHP:
<%
    
'Aqui busco las que no tienen padre, osea las que son las de hasta arriba'
    
qry="SELECT * FROM AREAS WHERE prearea = '' ORDER BY nombre ASC"
    
set rsAREAS conn.Execute(qry)
    Do While 
not rsAREAS.EOF
        response
.write rsAREAS("id_area") &" - "rsAREAS("nombre")
        
qry="SELECT * FROM AREAS WHERE prearea = '"&rsAREAS("id_area")&"' ORDER BY nombre ASC"
        
set rsEXISTE=conn.Execute(qry)
        if 
not rsEXISTE.EOF then
            mas
=mas&"-"
            'Aqui comienzo a usar la función recursiva'
            
Call buscarArea(rsAREAS("id_area"),mas)
        
end if
        
rsAREAS.MoveNext
    Loop
%> 
Si alguien tiene idea de porque no pifa esto, por favor diganme como puedo solucionar este dilema.

Nota: Esta lista de árbol puede llegar a ser infinita (por eso uso recursividad)