Ver Mensaje Individual
  #3  
Antiguo 13-04-2008
Avatar de DarkDudae
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 177
Reputación: 21
DarkDudae Va por buen camino
Cita:
Empezado por xEsk Ver Mensaje
Eso es porque debes inicializar el rand().

Es como en Delphi, antes de usar el random, debes llamar al "randomize()".

El problema, es que ahora mismo no se si existe alguna función en Firebird que haga esto, es cuestión de buscarlo por internet.

Saludos.
Eso fue lo primero que pensé, pero parece ser que no existe nada por el estilo (al menos yo no lo he sabido encontrar)

Como solución provisional, antes de ejecutar el select normal, ejecuto otros selects limitados a dos únicos registros con un único campo en su parámetro de búsqueda. Esta consulta, la ejecuto entre 1 y 100 veces (con la función random propia de delphi). Así al menos me aseguro de que el random maneje 100 posibilidades de inicio distintas.

Es una solución bastante cutre, ya que es ejecutar a veces hasta 100 veces una consulta inútil, pero al menos me sirve para inicializar la consulta cuasi-aleatoriamente.

Si conocéis alguna otra solución mejor...

Saludos
Responder Con Cita