Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2011, 08:59
davape9
 
Fecha de Ingreso: octubre-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 2
Como simplificar esta funcion para no usar scripttimeout

Hola amigos :)

En mi web tengo esto en asp

num=1
set usd = cnn.execute("select * from usuarios order by posicion")
while not usd.eof
cnn.execute("update usuarios set posicion = '"&num&"' where id = '"&usd("id")&"'")
num=num+1
usd.movenext
wend


Es necesario poner eso, porque cada vez que hacen algo las posiciones van cambiando mucho y es imposible que alguna vez no falle algo y aparezcan dos usuarios en la misma posición, o una posición sin usuario. Y es necesario que esté así, por eso, esta función la ejecuto cada hora.

El caso es que he tenido que poner el server.scriptimeout a 99999999 porque si no daba error, y eso me parece demasiado, que estes en la web y de repente tarde mil años en cargarse porque están actualizandose las posiciones.

¿Se os ocurre una mejor manera de hacer eso? en lugar de tener que actualizar las posiciones de los registros uno por uno, algo de SQL que lo haga todo a la vez, la verdad es que yo de SQL no entiendo mucho.

Gracias!

Última edición por davape9; 13/11/2011 a las 09:05