You are currently offline, waiting for your internet to reconnect

INFO: Using the FoxPro LOOKUP() Function

This article was previously published under Q92359
SUMMARY
The LOOKUP() function searches a database for the first occurrence ofa specified expression. If FoxPro finds the expression, it moves therecord pointer to the record that corresponds to the expression andreturns the contents of the specified field in the record. If nomatching record is found, the function returns the NULL string andleaves the record pointer at the end of the file.

The LOOKUP() function can be used either to search for a specificexpression in a database or to search for the first occurrence of amatching field in a second database.
MORE INFORMATION
The syntax of the LOOKUP() function is as follows

   LOOKUP(<field1>,<expr>,<field2>[,<expC>])				


where:

   <field1> is the field to return.   <expr>   is the string to search for.   <field2> is the field to search.   <expC>   is the compact index tag to use in the search (optional).				


Examples



The following code searches the CUSTOMER.DBF file for the firstoccurrence of "Mark Cummings" in the CONTACT field. If LOOKUP() findsa matching record, it returns the contents of the COMPANY field.

   USE CUSTOMER   ?LOOKUP(COMPANY,"Mark Cummings",CONTACT)				


The following code uses both the CUSTOMER.DBF and INVOICES.DBF files.LOOKUP() moves the record pointer through the CUSTOMER database untilit finds a record that matches the current CNO field in INVOICES.LOOKUP() returns the contents of the COMPANY field in the CUSTOMERdatabase.

   SELECT A   USE INVOICES   SELECT B   USE CUSTOMER   ?LOOKUP(COMPANY,INVOICES.CNO,CNO)				


If LOOKUP() includes the name of a compact index tag in the optionalcharacter expression <expC>, the search expression should match theindex expression for the compact index tag. You can search thedatabase for the contents of one field or a combination of fields byincluding the name of a compact index tag. The following code adds theCONTACT tag to the first example above:

   ?LOOKUP(COMPANY,"Mark Cummings",CONTACT,"CONTACT")				


When the LOOKUP() expression does not specify a tag and the databaseis indexed, FoxPro searches the primary index for the expression. Ifno index is available, the LOCATE command is used to search thedatabase.

NOTE: The Rushmore query-optimization system cannot optimize aLOOKUP() call.
VFoxWin FoxDos FoxWin 2.50 2.50a 2.50b 2.60 2.60a lookup look up
Properties

Article ID: 92359 - Last Review: 02/10/2005 22:53:14 - Revision: 2.2

  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft FoxPro 2.0
  • kbinfo KB92359
Feedback