Hola gente, mi problema es que he hecho una consulta que tarda mucho en mostrar los datos. Como mi nivel en ASP es bastante pobre, estoy seguro que se puede hacer de otra manera. Y esa es mi pregunta. ¿Como mejoro este consulta?
Primero la explicación: tengo una tabla de distribuidores con los campos continente, pais, provincia, población y los datos propios de cada distribuidor.
Por supuesto hay más de un distribuidor para cada pais, provincia y población.
Tengo que crearme un xml para poder hacer consultas con un flash.
Este es el código:
Código:
SQL="SELECT DISTINCT(CONTINENTE) FROM tDistribuidores"
Set rs=CreateObject("ADODB.Recordset")
rs.CursorType=1
rs.Open SQL, con
do while not rs.EOF
response.Write("<continentes nom='"&rs("CONTINENTE")&"'>"&chr(13))
SQL2="SELECT DISTINCT(PAIS) FROM tDistribuidores WHERE CONTINENTE='"&rs("CONTINENTE")&"'"
Set rs2=CreateObject("ADODB.Recordset")
rs2.CursorType=1
rs2.Open SQL2, con
do while not rs2.EOF
response.Write("<pais nom='"&rs2("PAIS")&"'>"&chr(13))
SQL3="SELECT DISTINCT(PROVINCIA) FROM tDistribuidores WHERE PAIS='"&rs2("PAIS")&"'"
Set rs3=CreateObject("ADODB.Recordset")
rs3.CursorType=1
rs3.Open SQL3, con
do while not rs3.EOF
response.Write("<provincia nom='"&rs3("PROVINCIA")&"'>"&chr(13))
SQL4="SELECT DISTINCT(POBLACION) FROM tDistribuidores WHERE PROVINCIA='"&rs3("PROVINCIA")&"'AND PAIS='"&rs2("PAIS")&"' "
Set rs4=CreateObject("ADODB.Recordset")
rs4.CursorType=1
rs4.Open SQL4, con
do while not rs4.EOF
dim kk
kk=Replace(rs4("POBLACION"), "'", "'")
dim pob
pob=Replace(rs4("POBLACION"), "'", "''")
response.Write("<poblacion nom='"&kk&"'>"&chr(13))
'if rs4("POBLACION")<>"" then
SQL5="SELECT * FROM tDistribuidores WHERE PROVINCIA='"&rs3("PROVINCIA")&"'AND PAIS='"&rs2("PAIS")&"'AND POBLACION='"&pob&"'"
Set rs5=CreateObject("ADODB.Recordset")
rs5.CursorType=1
rs5.Open SQL5, con
do while not rs5.EOF
response.Write("<distribuidor>"&chr(13))
response.Write("<nombre>"&Server.HTMLEncode(rs5("NOMBRE"))&"</nombre>"&chr(13))
response.Write("<direccion>"&rs5("DIRECCION")&"</direccion>"&chr(13))
response.Write("<cp>"&rs5("CP")&"</cp>"&chr(13))
response.Write("<telefono>"&rs5("TELEFONO")&"</telefono>"&chr(13))
response.Write("<mail>"&rs5("EMAIL")&"</mail>"&chr(13))
response.Write("<web>"&rs5("WEB")&"</web>"&chr(13))
response.Write("</distribuidor>"&chr(13))
rs5.MoveNext
loop
rs5.Close
set rs5=nothing
'end if
response.Write("</poblacion>"&chr(13))
rs4.MoveNext
loop
rs4.Close
set rs4=nothing
response.Write("</provincia>"&chr(13))
rs3.MoveNext
loop
rs3.Close
set rs3=nothing
response.Write("</pais>"&chr(13))
rs2.MoveNext
loop
rs2.Close
set rs2=nothing
response.Write("</continentes>"&chr(13))
rs.MoveNext
loop
rs.Close
set rs=nothing
Se entiende? me podéis ayudar?