BINDABLE (set runtime expression string variables)

Top  Previous  Next

 

BINDABLE

The BINDABLE attribute declares a GROUP, QUEUE, FILE, or VIEW whose constituent variables are all available for use in a runtime expression string. The contents of each variable's NAME attribute is the logical name used in the dynamic expression. If no NAME attribute is present, the label of the variable (including prefix) is used. Space is allocated in the .EXE for the names of all of the variables in the structure. This creates a larger program that uses more memory than it normally would. Therefore, the BINDABLE attribute should only be used when a large proportion of the constituent fields are going to be used.

The BIND(group) form of the BIND statement must still be used in the executable code before the individual fields in the QUEUE structure may be used.

Example:

Names   QUEUE,BINDABLE                    !Bindable Record structure

Name      STRING(20)

FileName  STRING(8),NAME('FName')         !Dynamic name: FName

Dot       STRING(1)                       !Dynamic name: Dot

Extension STRING(3),NAME('EXT')           !Dynamic name: EXT

       END

CODE

BIND(Names)

 

Names   FILE,DRIVER('Clarion'),BINDABLE   !Bindable Record structure

Record   RECORD

Name      STRING(20)

FileName  STRING(8),NAME('FName')         !Dynamic name: FName

Dot       STRING(1)                       !Dynamic name: Dot

Extension STRING(3),NAME('EXT')           !Dynamic name: EXT

        END

       END

CODE

OPEN(Names)

BIND(Names)

 

FileNames GROUP,BINDABLE                  !Bindable group

FileName   STRING(8),NAME('FILE')         !Dynamic name: FILE

Dot        STRING('.')                    !Dynamic name: Dot

Extension  STRING(3),NAME('EXT')          !Dynamic name: EXT

         END

 

See Also:

BIND

UNBIND

EVALUATE