Sheerpower®
A Guide to the Sheerpower Language


Previous Contents Index

EXAMPLE:

Example 15-21 CANCEL EXTRACT

  open table cl: name 'sheerpower:samples\client' 
  extract table cl 
    print 'Client: '; cl(last) 
    line input 'Press enter to continue': z$ 
    if  _exit  then cancel extract
  end extract
  print 'Records extracted:'; _extracted
  close table cl 
  end
 
 
Client: Smith 
Press enter to continue? EXIT 
Records extracted: 0 

DESCRIPTION:

CANCEL EXTRACT cancels the current extract of a record and transfers control to the next statement after the END EXTRACT statement.

This statement can only be used within an EXTRACT block---that is, between an EXTRACT TABLE and an END EXTRACT pair of statements.

15.7.8 EXIT EXTRACT

FORMAT:


        EXIT EXTRACT 

EXAMPLE:

Example 15-22 EXIT EXTRACT

  open table cl: name 'sheerpower:samples\client' 
  extract table cl 
    print 'Client: '; cl(last) 
    line input 'Press enter to continue': z$ 
    if  _exit  then exit extract
  end extract
  print 'Records extracted:'; _extracted 
  close table cl 
  end
 
 
Client: Smith 
Press enter to continue? <ENTER> 
Client: Kent 
Press enter to continue? EXIT 
Records extracted: 1 

DESCRIPTION:

EXIT EXTRACT passes control to the corresponding END EXTRACT statement, performs final sorting (if any), and creates the extracted collection.

15.7.9 REEXTRACT TABLE

FORMAT:


        REEXTRACT TABLE table_name 
                  --- 
           [INCLUDE | EXCLUDE] cond_expr... 
           [SORT [ASCENDING | DESCENDING] BY expression... 
                  --- 
        END EXTRACT 

EXAMPLE:

Example 15-23 REEXTRACT TABLE ... END EXTRACT

  open table cl: name 'sheerpower:samples\client', access input
  extract table cl 
    include cl(state) = 'CA' 
  end extract
  reextract table cl 
    exclude cl(phone)[1:3] <> '619' 
    sort ascending by cl(last) 
  end extract
  print 'List of California Clients in Area Code 619' 
  for each cl 
    print cl(first); ' '; cl(last), cl(phone) 
  next cl 
  close table cl 
  end
 
 
List of California Clients in Area Code 619 
Cathy Cass          (619) 743-8582 
Paul Johnson        (619) 489-5551 
Keith Kent          (619) 967-5021 
Pete Porter         (619) 778-6709 
Wayne Waters        (619) 564-1231 

DESCRIPTION:

REEXTRACT TABLE can be used to do a second extract on a list of structure records you previously extracted. This allows for increasingly specific records to be chosen through a series of REEXTRACTs.

REEXTRACT does an extract on the list of records previously extracted. table_name is the name associated with an open table.

END EXTRACT marks the end of the REEXTRACT construct. REEXTRACT operates the same as EXTRACT. However, REEXTRACT operates on a previously extracted list.

Note on EXTRACT

Extract operations by key cannot be performed with REEXTRACT.

15.7.10 EXTRACT TABLE: APPEND

FORMAT:


        EXTRACT TABLE table_name: APPEND 

EXAMPLE:

Example 15-24 APPEND Option in EXTRACT TABLE

  open table detail: name 'sheerpower:samples\detail' 
  set table detail: extracted 0 
  extract table detail, field lineid : & 
      key '10301001' to '10302000', append
    sort by detail(prodnbr) 
    sort by detail(invnbr) 
  end extract
  extract table detail, field lineid : & 
      key '10311001' to '10312000', append
    sort by detail(prodnbr) 
    sort by detail(invnbr) 
  end extract
  print 'Prod'; tab(7); 'Line ID'; tab(17); 'Quantity' 
  for each detail 
    print detail(prodnbr); tab(7); detail(lineid); & 
        tab(17); detail(qty) 
  next detail 
  close table detail 
  end
 
 
Prod  Line ID   Qty 
22800 10301-002      2 
22800 10301-004      1 
22800 10301-006      2 
24100 10311-003      1 
24200 10301-003      1 
24200 10311-009      1 
28400 10311-001      2 
28800 10301-009      2 
28800 10311-002      9 
28800 10311-005      1 
28800 10311-006      1 
31020 10301-005      1 
31040 10311-010      2 
31150 10301-001      1 
31150 10301-008      8 
31150 10311-004      1 
31150 10311-008      1 
33090 10301-007      2 
33090 10311-007      1 

DESCRIPTION:

The EXTRACT TABLE: APPEND statement adds records to the last collection of extracted records rather than creating a new collection.

15.8 ASK TABLE

FORMAT:


        ASK TABLE table_name: table_option [num_var | str_var] 

DESCRIPTION:

The ASK TABLE statement is used to ask about various device and stable characteristics from within your programs. table_name is the name of a table whose characteristics are being asked about. table_option can be any of the table options available. The options are explained in the following sections.

15.8.1 ASK TABLE FIELD: item

FORMAT:


        ASK TABLE table_name, FIELD field_expr: item var 

EXAMPLE:

Example 15-25 ASK TABLE FIELD: item

  open table cl: name 'sheerpower:samples\client' 
  ask table cl: fields num_fields 
  for i = 1 to num_fields 
    clear
    ask table cl, field #i: description b$ 
    ask table cl, field #i: prompt a$ 
    ask table cl, field #i: position a% 
    ask table cl, field #i: length b% 
    ask table cl, field #i: heading f$ 
    ask table cl, field #i: printmask c$, & 
                                screenmask d$, & 
                                help e$ 
    print at 5,5: '' 
    print 'Description   : '; b$ 
    print 'Prompt        : '; a$ 
    print 'Position      : '; a% 
    print 'Field length  :' ; b% 
    print 'Rpt. heading  : '; f$ 
    print 'Print mask    : '; c$ 
    print 'Screen mask   : '; d$ 
    print 'Help          : '; e$ 
    delay
  next i 
  close table cl 
  end
 
 
Description   : Client ID number 
Prompt        : Client ID number 
Position      :  1 
Field length  : 5 
Rpt. heading  : CLNT,ID 
Print mask    : >#### 
Screen mask   : digits:##### 
Help          : Client ID number 

DESCRIPTION:

The FIELD option allows you to get information about a specific field in a table. table_name is the name of the table. field_expr is the field you are inquiring about. item specifies what type of information you are asking. The information is stored in the variable specified.

The following sections provide more information on what you can use for field_expr and on the various field items.

For more information:

The ITEM information is created when the SETUP routine is used to define the field. You can refer to Chapter 16, Database Setup for information on defining fields.

15.8.1.1 FIELD Expressions

The field_expr used in the ASK TABLE FIELD: item statement can be either a constant or a string or numeric expression.

A string constant can be used to specify the field name. To use a string constant, just enter the field name, without quotes. Sheerpower will then use the string constant as the field name:


        ASK TABLE sheerpower:samples\CLIENT, FIELD LAST: DESCRIPTION A$ 
                                        / 
                  the field is specified by its field name 

You can also specify a field name with an expression. To use an expression, precede the expression with a pound sign (#). The pound sign tells Sheerpower that the following characters are an expression, not the field name. If a pound sign is not included Sheerpower will interpret the characters as a field name.


        ASK TABLE CL, FIELD #FIELDNAME$: DESCRIPTION A$ 
                                    / 
          the field is specified by the value of the variable FIELDNAME$ 
 
 
        ASK TABLE CL, FIELD #FIELDNUM: DESCRIPTION A$ 
                                    / 
          the field is specified by the value of the variable FIELDNUM 


Previous Next Contents Index