bas7advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
TYPE Statement Details
  Syntax  Details  Example                 Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
TYPE defines a data type or ISAM table type that contains one or more
elements or table columns.
 
TYPE usertype
  elementname AS typename
  [elementname AS typename]
.
.
.
END TYPE
    ■ The usertype follows the same rules as a BASIC variable name. In the
      case of an ISAM table, the argument usertype identifies a user-defined
      table structure.
    ■ For a data type, elementname follows the same rules as a BASIC
      variable name. For a table type, elementname follows the ISAM naming
      conventions.
    ■ If the argument usertype is a table type, any elementname arguments are
      the names of columns in the table. The names must be exact matches to
      existing column names and must follow the ISAM naming conventions.
    ■ The typename can be a user-defined data type, a nested user-defined
      type (data types only), or an array.
 
New Features
    ■ BASIC now supports:
        - User-defined types for ISAM tables.
        - The currency data type for dollars and cents math.
        - Static arrays in user-defined types.
    ■ Before you can use an ISAM table, you must declare a record type
      for the records that make up the table. Instances of this type
      are used to pass records to and from the table.
    ■ The following TYPE statement illustrates the use of static arrays.
      The record StateData includes the CityCode static array, and the
      record Washington has the same structure as StateData:
 
        TYPE StateData
           CityCode (1 TO 100) AS INTEGER   'declares a static array.
           County AS STRING * 30
        END TYPE
 
        DIM Washington(1 TO 100) AS StateData
 
    ■ When you declare a static array within a user-defined type, its
      dimensions must be declared with numeric constants rather than
      variables.
    ■ For efficiency, make sure that arrays within a user-defined type
      start on even offsets.
    ■ You can create very large records when you include static arrays
      within records. Putting one of these records within a SUB procedure
      can use large amounts of stack space.
 
Usage Notes
    ■ Strings in user types must be fixed-length strings. String lengths
      are indicated by an asterisk and a numeric constant. For example,
      the following line defines an element named Keyword in a user-defined
      type as a string with length 40:
 
        TYPE
           Keyword AS STRING * 40
        END TYPE
 
    ■ A user-defined type must be declared in a TYPE declaration before
      it can be used in the program. Although a user-defined type can be
      declared in the module-level code, you can declare a variable to be
      of a user-defined type anywhere in the module, even in a SUB or
      FUNCTION.
    ■ Use the DIM, REDIM, COMMON, STATIC, or SHARED statements to declare a
      variable to be of a user-defined type.
    ■ The keyword REM cannot be used as a field name in a TYPE statement.
      The text that follows is treated as a comment.
 
ISAM Programming Tip
    ■ If you have defined a table to have columns A, B, C, and D,
      you can use a user-defined type that has only the columns you
      need (any subset of A, B, C, and D).