Ver Mensaje Individual
  #83 (permalink)  
Antiguo 11/08/2005, 17:48
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Estructura de categorías

Genera la jerarquía de determinadas categorías. Este procedimiento es una modificación de uno que mencionó A Z para resolver un problema similar al mío de sjam7 o speedy (no recuerdo en este momento). Lo que no me gustaba era que por cada llamada al procedimiento se creaba un objeto conexion y un objeto recordset. Con esta función se crean menos objetos recordset y se utiliza una sola conexion, que es pasada como argumento del procedimiento (eso gracias al maestro de U_Goldman). Los campos que debería tener la tabla desde donde se sacan las categorías serían los siguientes:

CAT_ID --> Id de la categoría
CAT_IDDEP --> Id de la categoría del cual depende (el 0 son categorias princ.)
CAT_HIJOS --> 1 si tiene hijos, 0 si la categoría no tiene hijos
CAT_NIVEL --> Nivel de la categoría en la estructura (0 para las principales, 1, 2...)

Código:
sub getCategories(param_id, objConnection)
sql = "SELECT CAT_ID, CAT_NOMBRE, CAT_HIJOS, CAT_NIVEL FROM CAT_CATEGORIAS WHERE CAT_IDDEP = " & param_id
	  set rs = server.createObject("ADODB.recordSet")
	   rs.open sql, objConnection
	   if not rs.eof then
	   do until rs.eof
		  leftSpace = rs("CAT_NIVEL") * 5
		  response.write(replace(space(leftSpace)," ","&nbsp;") & rs("CAT_NOMBRE") & "<BR>")	   
	   if rs("CAT_HIJOS") = 1 then
		  getCategories rs("CAT_ID"), objConnection	   
	   end if
		  rs.moveNext	   
	   loop
	end if
	rs.close()
   set rs = nothing
end sub
Se llamaría de esta forma:

set conn = server.createObject("ADODB.connection")
conn.open strConn
call getCategories(0, conn)
conn.close()
set conn = nothing

Espero que sea útil para alguien esta modificación.
__________________
Add, never Remove