Todas las busquedas en Dolphin se hacen a bajo nivel
METHOD Seek( uSeek, cnField, nStart, nEnd, lSoft, lRefresh )
Hace una busqueda usando un algoritmo llamado en computacion "arbol binario" (usado comunmente en los diccionarios),
por lo general lo que hace es que va directo al medio de la consulta, y si no encuentra la palabra entonces salta a la
otra mitad (la primera mitad o la segunda mitad de la busqueda) dependiendo de si la palabra encontrada
es mayor o menor que la que se busca, y así sucesivamente hasta encontrarla. (algoritmo sugerido por willi Quintana, gracias)
uSeek es el valor buscado
cnField Nombre/Numero del campo a buscar
nStart Registro de inicio para la busqueda
nEnd Registro final de la busqueda
lSoft Valor logico que determinara en estado .T. la busqueda "suave" del dato a buscar, .F. el dato exacto
lRefresh Carga el registro en contrado en el buffer (aRow/hRow)
el valor de retorno es el numero del registro encontrado o devuelve 0 de no encontarse
Observacion: La consulta debe estar ordenada por el campo a buscar
La busqueda con este algoritma es realmente rapida
ejemplo de los resultados...
http://tdolphin.blogspot.com/2010/07/rapido-fast.htmlantes seek usaba una busqueda secuencial ( que ahora lo hace find )
METHOD Locate( aValues, aFields, nStart, nEnd, lRefresh )
Usa la misma tecnica de Seek pero para varios valores en varios campos
aValue Array de valores a buscar
aField Array de los nombres de campos a buscar en orden respectivo a los volores buscados
METHOD Find( aValues, aFields, nStart, nEnd, lRefresh )
Este metodo usa un algoritmo de busqueda secuencial, la consulta no necesita estar ordenada