Ver Mensaje Individual
  #5  
Antiguo 05-04-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
El comando locate solo puede usar indices en motores de bases de datos que no sean cliente/servidor como Paradox/Dbase, etc. Estos tipos de base de datos son navegacionales de modo que se puede leer del servidor un solo registro de una tabla, por ejemplo el ultimo registro, sin necesidad de leer los registros anteriores (utilizando como ayuda un determinado indice).

En los motores c/s no existen tablas a las que se puedan acceder directamente, solo se pueden ejecutar sentencias SQL que devuelven determinados resultados. Y estos resultados no son navegacionales.

Si haces un SELECT * FROM TABLA, el resultado son todos los registros, si a esta sentencia le aplicas un Locate, no hay mas remedio que recorrer uno por uno todos los resultados de la sentencia para localizar los registros que cumplan la condicion, y aunque el resultado de la query este ordenado no puedes ir directamente a la 'Z' sin haber leido anteriormente todos los registros que comiencen por 'A','B', etc,etc.

Si quieres que las busquedas vayan rapidas tendras que ejecutar una sentencia SQL que te devueva solo unos pocos registros, aquellos en los que estes interesado (ajustando adecuadamente las condiciones de la clausula WHERE de la sentencia).

Saludos
Miguel
Responder Con Cita