Sheerpower®
A Guide to the Sheerpower Language


Previous Contents Index

15.8.1.16 Item: POSITION


        ASK TABLE table_name, FIELD field_expr: POSITION num_var 

POSITION returns the starting position for the specified field in a numeric variable.

15.8.1.17 Item: PRINTMASK


        ASK TABLE table_name, FIELD field_expr: PRINTMASK str_var 

PRINTMASK returns the print mask for the specified field in a string variable.

15.8.1.18 Item: PROMPT


        ASK TABLE table_name, FIELD field_expr: PROMPT str_var 

PROMPT returns the prompt for the specified field in a string variable.

15.8.1.19 Item: SCREENMASK


        ASK TABLE table_name, FIELD field_expr: SCREENMASK str_var 

SCREENMASK returns the screen mask for the specified field in a string variable. This option is not currently used.

15.8.1.20 Item: VRULES


        ASK TABLE table_name, FIELD field_expr: VRULES str_var 

VRULES returns the validation rules for the specified field in a string variable.

Refer to the Section 6.6.6, VALID(text_str, rule_str) for information on validation rules.

Example 15-31 VRULES - Field Definition Item

  open table cl : name 'sheerpower:samples\client' 
  ask table cl, field bday: vrules str$ 
  print str$ 
  end
 
 
date ymd; minlength 8 

15.8.2 ASK TABLE: CURRENT

FORMAT:


        ASK TABLE table_name: CURRENT str_var 

EXAMPLE:

Example 15-32 ASK TABLE: CURRENT

  dim a$(100) 
  let i = 0 
  open table cl: name 'sheerpower:samples\client' 
  extract table cl 
  end extract
  for each cl 
    print cl(last); ', '; cl(first) 
    input 'Would you like to see this record (Y/N)': yn$ 
    if  yn$ = 'Y'  then    
      let i = i + 1 
      ask table cl: current a$(i) 
    end if
  next cl 
  print
  for j = 1 to i 
    set table cl: current a$(j) 
    print cl(last); ','; cl(first), cl(state), cl(phone) 
  next j 
  end
 
 
Errant, Earl      Would you like to see this record (Y/N)? Y 
Abott, Al         Would you like to see this record (Y/N)? Y 
Brock, Bud        Would you like to see this record (Y/N)? N 
Cass, Cathy       Would you like to see this record (Y/N)? N 
Derringer, Dale   Would you like to see this record (Y/N)? Y 
Farmer, Fred      Would you like to see this record (Y/N)? Y 
Errant, Earl       CA       (408) 844-7676 
Abott, Al          NY       (202) 566-9892 
Derringer, Dale    CA       (818) 223-9014 
Farmer, Fred       FL       (305) 552-7872 

DESCRIPTION:

ASK TABLE: CURRENT assigns the current record value to the str_var. Once the current record has been assigned with ASK TABLE: CURRENT, the SET STRUCTURE: CURRENT statement can be used to get this record.

Sheerpower returns a zero-length string if there is no CURRENT record.

15.8.3 ASK | SET TABLE: DATA

FORMAT:


        [ASK | SET] TABLE table_name: DATA str_var 

EXAMPLE:

Example 15-33 ASK | SET TABLE: DATA

  open table daily: name 'sheerpower:samples\daily_data' 
  open table arch : name 'sheerpower:samples\archive_data', access outin
  
  extract table arch 
  end extract
  print 'Number of records in ARCHIVE_DATA: '; _extracted
  delay
 
  extract table daily 
    ask table daily: data row$ 
    print row$ 
    add table arch 
      set table arch: data row$ 
    end add
  end extract 
  
  extract table arch 
    ask table arch: data newrow$ 
    print 'Daily data record now written to the archive data table: '; newrow$ 
  end extract
  print
  print 'Updated number of records in ARCHIVE_DATA: '; _extracted
    
  end
  
 
Number of records in ARCHIVE_DATA:  0 
 
     1AMY                           JOHNSON                                 1276 
      450062 
      
100123JOSEPH                        FRANKLIN                                2333 
       72800 
       
100046ROBERT                        HOWARD                                  2333 
4      92000 
 
Daily data record now written to the archive data table:      1AMY              
             JOHNSON                                 1276      450062 
             
Daily data record now written to the archive data table: 100123JOSEPH           
             FRANKLIN                                2333       72800 
             
Daily data record now written to the archive data table: 100046ROBERT           
             HOWARD                                  23334      92000 
             
Updated number of records in ARCHIVE_DATA:  3 

DESCRIPTION:

ASK/SET TABLE: DATA gets all of the data for the current record/row. This eliminates the need to make fields like "WHOLE" or "ALL" that stand for the entire data record. The new feature is especially useful when copying data from one table to another where the two tables share the same definitions (record layout).

When doing the SET, if the data is longer than the recordsize of the current record, then the data is truncated. If the data is shorter than the recordsize of the current record, then the data is filled with nulls (byte values of zero).

15.8.4 ASK TABLE: DATAFILE

FORMAT:


        ASK TABLE table_name: DATAFILE str_var 

EXAMPLE:

Example 15-34 ASK TABLE: DATAFILE

  open table cust: name 'sheerpower:samples\customer' 
  open table cl: name 'sheerpower:samples\client' 
  ask table cust: datafile z1$ 
  ask table cl: datafile z2$ 
  print z1$ 
  print z2$ 
  end
 
 
C:\SHEERPOWER\samples\CUSTOMER.ARS 
C:\SHEERPOWER\samples\CLIENT.ARS 

DESCRIPTION:

The ASK TABLE: DATAFILE statement returns the full file name/file specification of a specified table. table_name is the specified structure name. str_var contains the returned file specification.

15.8.5 ASK TABLE: FIELDS

FORMAT:


        ASK TABLE table_name: FIELDS num_var 

EXAMPLE:

Example 15-35 ASK TABLE: FIELDS

  open table cl: name 'sheerpower:samples\client', access input
  ask table cl: fields z 
  print z 
  end
 
 
18 

DESCRIPTION:

The number of fields in a table can be determined with the ASK TABLE: FIELDS statement. The number is assigned to the numeric variable num_var.

15.8.6 ASK TABLE: KEYS

FORMAT:


        ASK TABLE table_name: KEYS num_var 

EXAMPLE:

Example 15-36 ASK TABLE: KEYS

  open table cl: name 'sheerpower:samples\client', access input
  ask table cl: keys z 
  print z 
  end
 
 
2 

DESCRIPTION:

The ASK TABLE: KEYS statement returns the number of keys that are accessible by Sheerpower. It returns the value of 0 if no keys are available.

15.8.7 ASK TABLE: CAPABILITY

FORMAT:


        ASK TABLE table_name: CAPABILITY str_var 

EXAMPLE:

Example 15-37 ASK DATA: CAPABILITY

  open data cl: name 'sheerpower:samples\client', access input
  ask data cl: capability z$ 
  print z$ 
  end
 
 
INDEXED,INPUT 

DESCRIPTION:

Given a data expression, ASK DATA: CAPABILITY sets str_expr to a comma delimited string containing one or more of the following: INDEXED, INPUT, OUTPUT

Table 15-1 Table Types
Table Type Description
INDEXED The table is indexed; it can be accessed by key with statements such as SET TABLE...KEY.
INPUT You can read from the table.
OUTPUT You can write to the table.
null string The table is not currently open.


Previous Next Contents Index