Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/03/2007, 07:31
Avatar de CésarBalaguer
CésarBalaguer
 
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Re: RecordSet Vacio !! me da error !!

Me parece que solucionarias ese problema haciendo en tu select principal un join directo entre TABLA_1 y TABLA_2 asì recuperas ùnicamente los registros que necesitas, no das tantas vueltas con el loop y no necesitas hacer ningùn IF adentro de tu loop.

strSql = "SELECT Interprete_Artista "
strSql = strSql & "FROM TABLA_1 INNER JOIN TABLA_2 ON "
strSql = strSql & "(TABLA_1.INTERPRETEIDTEMA=TABLA2.IDTEMA) "
set mADO = conn.execute(strSql)


<%
If not mADO.Eof Then
%>
<table width="139" border="0">
<%
Do while Not Tabla_1.Eof %>
<tr><th>
<%Response.Write mADO.Fields ("Interprete_Artista")%>
</th> </tr>
<%
mADO.MoveNext
Loop
mADO.close
else
response.write("No tenemos datos")
end if
set mADO=Nothing
set Conn=Nothing
%>
</table>


Un principio bàsico de las bases de datos es evitar en todo lo que sea posible los "SELECT * " esto se debe a un tema de performance, la informaciòn solicitada en un select puede estar dentro del mismo ìndice y hacer un select * implica que el motor de base de datos deba ir al archivo fìsico para sacar la informaciòn y eso demanda recurso.

Otra cosa que se recomienda pero esta vez en programaciòn es evitar las preguntas dentro de bucles, claro està, casi nunca se puede hacer esto, pero si hay forma de hacerlo entonces en buena hora, esto se debe a que por cada vuelta que de el programa va a realizar la misma pregunta y eso demanda tiempo y recursos

ahora si unes ambos casos estaràs demandando de un tiempo mucho mayor para la ejecuciòn de tu programa y eso afecta directamente al performance, un select con dos tablas anilladas te evitarìa la pregunta dentro de loop y si das en tu select ùnicamente las columnas que requieres estaràs ahorrando otro poco mas de tiempo de ejecuciòn.