LOOKUP( ) (Función)
Busca en una tabla el primer registro que tiene un campo coincidente con la expresión especificada.
LOOKUP(ReturnField, eSearchExpression, SearchedField [, cTagName])
Valores devueltos
Character, Numeric, Currency, Float, Integer, Double, Date, DateTime o Logical
Parámetros
ReturnField
Especifica el campo cuyo contenido devuelve LOOKUP( ) cuando la búsqueda finaliza con éxito. Si la búsqueda fracasa, LOOKUP( ) devolverá una cadena de caracteres vacía de la misma longitud y el mismo tipo que ReturnField.eSearchExpression
Especifica la expresión de búsqueda. La expresión de búsqueda suele ser el contenido de un campo de la tabla, o puede corresponder a la expresión de índice del índice o de la etiqueta de índice compuesto que esté activo.SearchedField
Especifica el campo que se va a buscar. Si la tabla no tiene un índice activo, LOOKUP( ) realizará una búsqueda secuencial en el campo especificado mediante SearchedField.Si hay abierto un archivo de índice o una etiqueta de índice cuya expresión de clave de índice es el campo de búsqueda especificado, LOOKUP( ) utilizará el archivo de índice o la etiqueta de índice para realizar una búsqueda más rápida.
cTagName
Especifica el nombre de una etiqueta de índice compuesto para que LOOKUP( ) lo utilice en la búsqueda. Las búsquedas de índice compuesto son las que LOOKUP( ) realiza de forma más rápida.
Observaciones
Si la búsqueda tiene éxito, LOOKUP( ) moverá el puntero de registro al registro coincidente y devolverá el contenido de un campo especificado del registro.
Si no se encuentra la expresión de búsqueda, LOOKUP( ) devolverá una cadena de caracteres en blanco de la misma longitud y tipo de datos que ReturnField. El puntero de registro se sitúa al final del archivo.
Si se utiliza LOOKUP( ) para buscar en una tabla primaria, se moverán los punteros de registro de todas las tablas a los registros relacionados.
Esta función no puede optimizarse con Rushmore.
Ejemplo
En el ejemplo siguiente, LOOKUP( ) utiliza la etiqueta de índice company
para buscar la primera vez que aparezca la cadena "Ernst Handel". Si la búsqueda acaba con éxito, LOOKUP( ) devolverá el contenido del campo contact
y @ ... SAY mostrará el valor de retorno.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER company && Open Customer table
CLEAR
@ 2,2 SAY LOOKUP(contact, 'Ernst Handel', company, 'company')