Sesame 2.0 does have this capability in a set of commands called the "XResultSet" commands. Primary is the @XResultSetSearch command:
@XResultSetSearch(filename as string, database_name as string, search_mode as int, search_syntax as int, search_specs as string, ...) as int
For example to search for records in Customers.db, where the Company field starts with "M" and the Key field is less than 1500, you would use:
var aa as int
aa = @XResultSetSearch("Customers.db", "Customers", 0, 2, "!Key=<1500.0", "!Company=m..")
You can have as many search specs as you want.
The search modes are:
AND = 0
OR = 1
The search syntax flags:
Q&A = 2
REGEX = 3
The integer returned is a "handle" or "key" value that you can use to access the resulting result set using the other XResultSet commands:
XResultSetClose(rs_key as int)
Closes an open external result set.
XResultSetCurrentPosition(rs_key as int, record_number as int)
@XResultSetCurrentPosition(rs_key as int) as int
Sets/Gets the record number to work on in the external result set.
@XResultSetTotal(rs_key as int) as int
Returns the number of records in the external result set.
@XResultSetValue(rs_key as int, field_name as string) as string
Returns the value of the field specified in "field_name" from the current record in the external result set.
XResultSetValue(rs_key as int, field_name as string, value as string)
Sets the value of the field specified in "field_name" in the current record in the external result set to the
value in the parameter "value".
XResultSetCreateNewRecord(rs_key as int)
Creates a new record in the external result set and makes it the current record.
XResultSetRemoveRecord(rs_key as int)
Removes the current record from the external result set - but does not delete the record.
XResultSetDeleteRecord(rs_key as int)
Deletes the current record.
XResultSetReparent(rs_parent_key as int, field_name as string, rs_child_key)
Reparents the records in the child result set under the specified field in the current record of the parent
result set.