Formal Shape Grammar

Microsoft ActiveX Data Objects (ADO)

Formal Shape Grammar

This is the formal grammar for creating any shape command.

  • Required grammatical terms are text strings delimited by angle brackets ("<>").

  • Optional terms are delimited by square brackets ("[ ]").

  • Alternatives are indicated by a virgule ("|").

  • Repeating alternatives are indicated by an ellipsis ("...").

  • Alpha indicates a string of alphabetical letters.

  • Digit indicates a string of numbers.

  • Unicode-digit indicates a string of unicode digits.

All other terms are literals.

Term Definition
<shape-command>
SHAPE [<table-exp> [[AS] <alias>]][<shape-action>]
<table-exp>
{<native-sql-statement>} |
(<shape-command>) |
TABLE <quoted-name> |
<quoted-name>
<shape-action>
APPEND <aliased-field-list> | 
COMPUTE <aliased-field-list> [BY <field-list>]
<aliased-field-list>
<aliased-field> [, <aliased-field...>]
<aliased-field>
<field-exp> [[AS] <alias>]
<field-exp>
(<relation-exp>) |
<calculated-exp> |
<aggregate-exp> |
<new-exp>
<relation_exp>
<table-exp> [[AS] <alias>] 
    RELATE <relation-cond-list>
<relation-cond-list>
<relation-cond> [, <relation-cond>...]
<relation-cond>
<field-name> TO <child-ref>
<child-ref>
<field-name> | 
PARAMETER <param-ref>
<param-ref>
<number>
<field-list>
<field-name> [, <field-name>]
<aggregate-exp>
SUM(<qualified-field-name>) |
AVG(<qualified-field-name>) |
MIN(<qualified-field-name>) |
MAX(<qualified-field-name>) |
COUNT(<alias> | <qualified-field-name>) |
STDEV(<qualified-field-name>) |
ANY(<qualified-field-name>) 
<calculated-exp>
CALC(<expression>)
<qualified-field-name>
<alias>.[<alias>...]<field-name>
<alias>
<quoted-name>
<field-name>
<quoted-name> [[AS] <alias>]
<quoted-name>
"<string>" |
'<string>' |
[<string>] |
<name>
<name>
alpha [ alpha | digit | _ | # ...]
<number>
digit [digit...]
<new-exp>
NEW <field-type> [(<number> [, <number>])]
<field-type>
An OLE DB or ADO data type.
<string>
unicode-char [unicode-char...]
<expression>
A Visual Basic for Applications expression whose operands are other non-CALC columns in the same row.