Sheerpower®
A Guide to the Sheerpower Language


Previous Contents Index

15.5 DELETE TABLE

FORMAT:


        DELETE TABLE table_name 

EXAMPLE:

Example 15-8 DELETE TABLE - Delete Table Record

  open table cl: name 'sheerpower:samples\client', access outin
  add table cl 
    input 'Client ID ': cl(id) 
    input 'Last name ': cl(last) 
    input 'First name': cl(first) 
    input 'Contact   ': cl(contact) 
    input 'State     ': cl(state) 
  end add
  print 'Client added' 
  delay  
  extract table cl 
    include cl(state) = 'PA' 
  end extract
  // delete all clients from Pennsylvania 
  for each cl 
    print 'Deleting '; cl(first); ' '; cl(last) ;'...'; 
    delete table cl 
    print 'record deleted' 
  next cl 
  close table cl 
  end
 
 
Client ID ? 87433 
Last name ? Shores 
First name? Sandy 
Contact   ? 8435557373 
State     ? PA 
Client added 
Deleting Sandy Shores...record deleted 

DESCRIPTION:

DELETE TABLE deletes the current record from the specified table. table_name is the table name associated with the table that the record is going to be deleted from.

15.6 LOCK | UNLOCK TABLE

FORMAT:


        [LOCK | UNLOCK] TABLE table_name 

EXAMPLE:

Example 15-9 LOCK/UNLOCK TABLE

  open table cl: name 'sheerpower:samples\client', access outin
  extract table cl 
    include cl(state) = 'CA' 
  end extract
  for each cl 
    print
    print cl(first); ' '; cl(last) 
    lock table cl   // give us exclusive access 
    line input default cl(phone), prompt 'Enter new phone ': phone$ 
    if  _exit  then exit for 
    cl(phone) = phone$ 
    unlock table cl // put the record out to disk 
                        // and release it 
  next cl 
  close table cl 
  end
 
 
 
Keith Kent 
Enter new phone 6199675021 
 
Paul Johnson 
Enter new phone EXIT 

DESCRIPTION:

LOCK/UNLOCK TABLE can be used to lock or unlock the data record currently being accessed. Sheerpower automatically locks and unlocks data when you work with it. LOCK and UNLOCK override Sheerpower's automatic locking features allowing you to do it manually.

LOCK TABLE locks the data currently being accessed, giving the program exclusive access to the current record. No one else can access the data until it is unlocked.

UNLOCK TABLE unlocks the current record or data. The record is put to disk (if needed) and can again be accessed by others.

table_name is the name associated with the table.

15.6.1 UNLOCK TABLE: COMMIT | UNLOCK ALL: COMMIT

FORMAT:


        [UNLOCK] TABLE table_name: COMMIT 
        [UNLOCK] ALL: COMMIT 

EXAMPLE:

Example 15-10 UNLOCK TABLE: COMMIT

  unlock table payroll: commit

EXAMPLE:

Example 15-11 UNLOCK ALL: COMMIT

  unlock all: commit

DESCRIPTION:

COMMIT tells both ARS and the underlying operating system to write all cached data to disk. Using UNLOCK ALL with COMMIT causes the data on all tables in the program to be written to disk.

15.7 EXTRACT TABLE

FORMAT:


        EXTRACT TABLE table_name 
                ---  block of code 
          [INCLUDE | EXCLUDE] cond_expr 
          [SORT [ASCENDING | DESCENDING] BY expression] 
                --- 
        END EXTRACT 

EXAMPLE:

Example 15-12 EXTRACT TABLE - Extracting Records from a Structure

  open table cl: name 'sheerpower:samples\client' 
  print 'List of Clients' 
  print
  extract table cl 
    print cl(first); ' '; cl(last), cl(phone) 
  end extract
  close table cl 
  end
 
 
List of Clients 
 
Earl Errant         (408) 844-7676 
Al Abott            (202) 566-9892 
Bud Brock           (218) 555-4322 
Cathy Cass          (619) 743-8582 
Dale Derringer      (818) 223-9014 
Fred Farmer         (305) 552-7872 

DESCRIPTION:

When Sheerpower does an extract, it examines each record in the structure. For each record, Sheerpower executes the code between the EXTRACT TABLE and END EXTRACT statements. For instance, here is a table containing client information:


              ID #     LAST       FIRST      CITY      STATE  PHONE 
            +------+-----------+--------+--------------+--+----------+ 
            |80543 |Cass       |Cathy   | San Diego    |CA|6197438582| 
            |80542 |Brock      |Bud     | Duluth       |MN|2185554322| 
            |80522 |Errant     |Earl    | Monterey     |CA|4088447676| 
            |80561 |Derringer  |Dale    | Los Angeles  |CA|8182239014| 
            |80531 |Abott      |Al      | New York     |NY|2025669892| 
            |80573 |Farmer     |Fred    | Miami        |FL|3055527872| 

EXTRACT creates a list of clients. The above program example extracts information from each record in the table and displays each client's name and phone number.

When Sheerpower does an extract, it examines each record of the table in order. If the KEY option is specified, only those records with a key matching the KEY expression are examined. For each examined record, the following is done:

  1. Each INCLUDE and EXCLUDE statement is checked in turn. The examined record is not extracted if an INCLUDE statement evaluates to FALSE, or an EXCLUDE statement evaluates to TRUE.
  2. If any SORT specifications are given, a sort key is built using the SORT expression as the key. If no SORT specifications are given, the record is immediately extracted.
  3. When all records have been examined, the sort keys, if any, are sorted.

Sheerpower then builds a list of extracted records. This list can be accessed later with a FOR EACH loop. You can have up to 16 sort keys and 32 extract criteria.

15.7.1 INCLUDE Statement

FORMAT:


        INCLUDE cond_expr 

EXAMPLE:

Example 15-13 INCLUDE Within EXTRACT TABLE

  open table cl: name 'sheerpower:samples\client' 
  extract table cl 
    include cl(state) = 'CA' 
  end extract
  print 'List of California Clients' 
  print
  for each cl 
    print cl(first); ' '; cl(last), cl(state) 
  next cl 
  close table cl 
  end
 
 
List of California Clients 
 
Keith Kent          CA 
Paul Johnson        CA 
Wayne Waters        CA 
Earl Errant         CA 
Cathy Cass          CA 
Pete Porter         CA 
Dale Derringer      CA 

DESCRIPTION:

The INCLUDE statement includes records depending on the value of a conditional expression.

cond_expr is a conditional expression that Sheerpower evaluates. If the expression is TRUE, Sheerpower includes the record in the extract list. If the expression is FALSE, Sheerpower excludes the record from the list. For example, the program above creates an extract list containing only those clients located in California.

NOTE: The conditional expression must match the field's data type. For instance, if the field has a CHARACTER data type, the expression must be a string expression.

15.7.2 EXCLUDE Statement

FORMAT:


        EXCLUDE cond_expr 

EXAMPLE:

Example 15-14 EXCLUDE Within EXTRACT TABLE

  open table cl: name 'sheerpower:samples\client' 
  extract table cl 
    exclude cl(phone)[1:3] = '619' 
  end extract
  print 'List of Clients' 
  print
  for each cl 
    print cl(first); ' '; cl(last), cl(phone) 
  next cl 
  close table cl 
  end
 
 
List of Clients 
 
Earl Errant         (408) 844-7676 
Al Abott            (202) 566-9892 
Bud Brock           (218) 555-4322 
Dale Derringer      (818) 223-9014 
Fred Farmer         (305) 552-7872 


Previous Next Contents Index