Complete especification of jet-sql. Better if BNF grammar

  • Thread starter Ricardo Hernández Sáez
  • Start date
R

Ricardo Hernández Sáez

I'm working with a parser http://www.devincook.com/GOLDParser/index.htm
and want to find the grammar that define the sql dialect of the Jet Database
Engine.

I'm not talking about documents like those:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k/html/acfundsql.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k/html/acintsql.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k/html/acadvsql.asp

I'm looking for something like this:

<Select Stm> ::= SELECT <Columns>
<Into Clause>
<From Clause>
<Where Clause>
<Group Clause>
<Having Clause>
<Order Clause>
<Columns> ::= <Restriction> '*' | <Restriction> <Column List>
<Column List> ::= <Column Item> ',' <Column List> | <Column Item>
<Column Item> ::= <Column Source> | <Column Source> Id !ALIAS
<Column Source> ::= <Aggregate> | Id | Id '.' '*'
....

I've found the grammars ansi sql-89, ansi sql-92 and odbcm but i want
something more related to jet.
 
R

Ricardo Hernández Sáez

Thanks for your response.

The link is useful but incomplete. I've found similar links (but not
related to jet). In the select statement

SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [,
[table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...] [IN externaldatabase]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

, we can find "FROM tableexpression" and "WHERE criteria".

¿Where are defined tableexpression and criteria?

tableexpression can be as simple a table name or a complete select with an
alias.
criteria can be as simple as "True" or a subselect using IN operator.

I'm adapting a subset of ansi sql 92. Concretely, the subtree starting
with single sql statements (i'm not interested in stored procedure
definition and similar structures)

THANKS ANYWAY ;-)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top