A Dynamic Structure (aka "Dynstruct") is like a regular structure—i.e., one defined with DEFSTRUCT—except that the definition occurs at runtime rather than compile time. This allows general-purpose compiled routines to adapt at run-time to a wide variety of data structures or record layouts, including ones not known about in advance. Typical applications include:
• Generic file or audit trail viewers.
• Report generators.
• Handlers for SQL query results or CSV imports.
• Security hardening of existing code (by modifying record structures at runtime to remove unauthorized fields without breaking code referencing the authorized fields).
• Creating XTREE array layouts on the fly.
• Decoupling field-level logic from the physical layout of the containing record, i.e. adopting a more SQL-like approach to data.
Dynamic Structures in A-Shell are implemented with the MX_DYNSTRUCT subroutine, which see for additional and related information.
Typographical Note
The term "Dynstruct" is used here loosely as a shorthand for "dynamic structure" or for the A-Shell dynamic structure implementation in general. There is also a data type of the same name. When referring to it specifically, we’ll use all upper case (DYNSTRUCT), even though data type names in A-Shell BASIC source code are not case sensitive. Code examples may use DYNSTRUCT and dynstruct interchangeably.
History
2022 February, A-Shell 6.5.1711: Add Structure Definition Embedding (see following topic)