
29/09/2008, 05:30
|
| | Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 2 meses Puntos: 9 | |
Respuesta: Select a dos tablas y bucle anidado para mostrarlas Fijate en esta función. Es una modificación de una que está en la biblioteca de funciones de este foro.
Sub getCategories(param_id, objConnection)
Const FIELD_ID = 0
Const FIELD_NAME = 1
Dim endloop
sqlquery = "SELECT Id, Nombre FROM Categorias WHERE Id_dep = " & param_id
Set rs = Server.CreateObject("ADODB.recordSet")
call rs.Open(sqlquery, objConnection)
If Not (rs.Bof Or rs.Eof) Then
arr = rs.GetRows()
endloop = UBound(arr, 2)
For i = 0 To endloop
Response.Write(arr(FIELD_NAME,i) & "<br>")
Call getCategories(arr(FIELD_ID,i), objConnection)
Next
Else
rs.Close()
Set rs = Nothing
End If
End Sub
Fijate que hay algunas cosas que tenés que considerar para utilizarla. Lo primero es la estructura de tu base de datos. Para que funcione, vas a necesitar poner los equipos y los subequipos en una misma tabla. Desde el punto de vista de diseño, esto también es muy lógico, ya que un subequipo es en definitiva un equipo, por lo tanto te podés crear una sola tabla EQUIPOS. En esta tabla si o si deben existir estos campos:
Id -> El identificador del equipo
Nombre -> Nombre del equipo
Id_dep -> Identificador del equipo del que depende
Por ejemplo en tu caso quedaría algo como:
Id Nombre Id_dep
--- ----------- ---------
1 Equipo1 0
2 Equipo2 0
3 Equipo3 0
4 Subequipo1 1
5 Subequipo2 1
6 Subequipo3 2
7 Subequipo4 3
Fijate que el Id_dep de los equipos "raíces" es 0, y justamente este es el valor que tiene que tener el primer parámetro de la función cuando la llames. Otra cosa para que tengas en cuenta es que antes de llamarla tenés que crear una conexión, abrirla y luego se la pasas como segundo parámetro. Y también fijate que tenés que cambiar en la consulta sql por el nombre de la tabla que corresponda.
Espero haberte sido de ayuda.
Saludos!.
__________________ Add, never Remove |