Pierre Muller 21e13f0c2c Regenerate all Makefile's after: Change resource string extension variable RSTEXT to '.rsj' 3 maanden geleden
..
Makefile 21e13f0c2c Regenerate all Makefile's after: Change resource string extension variable RSTEXT to '.rsj' 3 maanden geleden
Makefile.fpc 4c7f9238c7 * SQL parser 15 jaren geleden
README.txt 421139e77a * fcl-db: sql parser: update readme after previous commit 11 jaren geleden
fpsqlparser.pas ff7eb29706 * Dotted filenames for package fcl-db 2 jaren geleden
fpsqlscanner.pp ff7eb29706 * Dotted filenames for package fcl-db 2 jaren geleden
fpsqltree.pp ff7eb29706 * Dotted filenames for package fcl-db 2 jaren geleden

README.txt

SQL scanner/parser/Abstract Syntax Tree units

This can parse the complete Firebird dialect 3 SQL syntax (which should come pretty close to SQL-92) and builds a syntax tree from it. The Abstract Syntax Tree can re-create the SQL with limited formatting support.

It comes with extensive test suite (about 830 test cases; see the fcl-db\tests directory). It has been tested on almost 400,000 SQL statements. Nevertheless bugs may remain, so any test results you may produce are welcome. Especially the GRANT/REVOKE statements are tested only theoretically.

The scanner/parser have been designed so they should be able to cope with other SQL dialects (using a set of flags) such as MySQL, but this support is currently not implemented.


The purpose is 3-fold:
- Add SQL syntax checking to property editors in the Lazarus IDE.
- Add reverse engineering of database creation scripts to the
Lazarus Database Desktop (and change the SQL generation to use
the abstract syntax tree)
- Add the ability to reliably alter queries at runtime.
(adding fields, filters and whatnot).