Searching rows with find and lookup

UltraLite has several modes of operation for working with data. Two of these modes, the find and lookup modes, are used for searching. The Table object has methods corresponding to these modes for locating particular rows in a table.

Note

The columns searched using Find and Lookup methods must be in the index used to open the table.

  • Find methods   move to the first row that exactly matches specified search values, under the sort order specified when the Table object was opened. If the search values cannot be found, the application is positioned before the first or after the last row.

  • Lookup methods   move to the first row that matches or is greater than a specified search value, under the sort order specified when the Table object was opened.

To search for a row

  1. Enter find or lookup mode.

    The mode is entered by calling a method on the table object. For example, the following code enters find mode.

    t.FindBegin();
  2. Set the search values.

    You do this by setting values in the current row. Setting these values affects the buffer holding the current row only, not the database. For example, the following code sets the value in the buffer to Kaminski.

    int lname = t.GetOrdinal( "lname" );
    t.SetString( lname, "Kaminski" );
  3. Search for the row.

    Use the appropriate method to carry out the search. For example, the following instruction looks for the first row that exactly matches the specified value in the current index.

    For multi-column indexes, a value for the first column is always used, but you can omit the other columns.

    tCustomer.FindFirst();
  4. Search for the next instance of the row.

    Use the appropriate method to carry out the search. For a find operation, FindNext locates the next instance of the parameters in the index. For a lookup, MoveNext locates the next instance.

See ULTable class.