Change the current work area
SELECT <xnWorkArea> | <idAlias>
<xnWorkArea> is the work area number between 0 and 250 inclusive. This argument is an extended expression and can be specified either as a literal number or as a numeric expression enclosed in parentheses.
<idAlias> is the name of an existing work area to SELECT if there is a database file open in that area.
SELECT is a database command that changes work areas. CA-Clipper supports 250 work areas, with each work area a logical handle to an open database file and all of its attributes. You can refer to work areas with SELECT by number or by alias. The alias of a work area is automatically assigned when a database file is USEd in that work area or by using the ALIAS clause.
Work area 0 refers to the first empty or next available work area. Using this, you can SELECT 0 and USE <xcDatabase> as a method of opening database files.
. Aliased expressions: Aliased expressions are a much more powerful method of selecting new work areas than the SELECT command. Instead of SELECTing a work area, and then performing an operation for that work area, you can apply an alias to an expression that performs the operation. This is done by specifying the alias of the remote work area and the expression enclosed in parentheses. For example, to access the value of EOF() in an unselected work area, you would normally execute a series of statements like the following:
SELECT Remote ? EOF() SELECT Main
Using the aliased expression form, these statements become:
. USE…NEW: Instead of using SELECT0 and USE <xcDatabase> to open a database file in a new work area, the preferred method is to USE <xcDatabase> NEW.
. This example opens a series of database files by SELECTing each work area by number then USEing each database file in that work area: SELECT 1 USE Customer SELECT 2 USE Invoices SELECT 3 USE Parts SELECT Customer . A better method is to open each database in the next available work area by specifying the NEW clause on the USE command line. In this example USE...NEW is employed instead of SELECT 0 and then USE: USE Customer NEW USE Invoices NEW SELECT Customer . This code fragment changes work areas while saving the current work area name to a variable using the SELECT() function. After executing an operation for the new work area, the original work area is restored: nLastArea := SELECT() USE Newfile NEW // <statements>... // SELECT (nLastArea)
ALIAS(), EOF(), SELECT(), SET INDEX, USE, USED()