RAPPEL DE LA SYNTAXE SQL
Remarque : la majorité des commandes SQL fonctionnent aussi bien sur les tables localisées sur la base de données Oxygène que sur les tables localisées sur Microsoft SQL Server.
Exceptions : ExecuteScriptSql, DetruireTableSql, TailleCacheLecture, Sql [connect, ...].
Les mots réservés du langage sont reconnus soit en lettres majuscules soit en lettres minuscules sauf pour la première lettre. Par exemple, Select, « WHERE », « Order By » sont reconnus alors que « selecT » et « from, aNd » ne le sont pas.
Bien qu'un sous-ensemble du langage SQL soit interprété, tous les mots du langage SQL sont réservés. En voici la liste :
ALL, AND, AVG, MIN, MAX, SUM, COUNT, ANY, AS, ASC, AUTHORIZATION, BETWEEN, BY, CHAR, CHECK, CLOSE, COMMIT, CONTINUE, CREATE, CURRENT, CURSOR, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISTINCT, DOUBLE, ESCAPE, EXISTS, FETCH, FLOAT, FOR, FOREIGN, FOUND, FROM, GO TO, GRANT, GROUP, HAVING, IN, INDICATOR, INSERT, INT, INTO, IS, KEY,LANGUAGE, LIKE, NOT, NULL, NUMERIC, OF, ON, OPEN, OPTION, OR, ORDER, PRECISION, PRIMARY, PRIVILEGES, PROCEDURE, PUBLIC, REAL, PREFERENCES, ROLLBACK, SCHEMA, SELECT, SET, SMALLINT, SOME, SQLCODE, TABLE, TO, UNION, UNIQUE, UPDATE, USER, VALUES, VIEW, WHENEVER, WHERE, WITH, WORK
Dans le cas où un code de champ ou de table de la base de données Oxygène entre en conflit avec un mot réservé de la grammaire SQL, il suffit de préfixer ce mot par le caractère souligné (_).
La grammaire interprétée par l'analyseur de requête est la suivante :
SQL: Select * From <code_table> [Where <condition>] [Order By <code_Champ>]
<condition>: { <condition> Ou <condition> |
<condition> Et <condition> |
Not <condition> |
(<condition>) |
<code_champ> = <constante> |
<code_champ> <> <constante> |
<code_champ> < <constante> |
<code_champ> > <constante> |
<code_champ> <= <constante> |
<code_champ> >= <constante> |
<code_champ> Like <constante_alphanumérique> |
<code_champ> = <constante> |
<code_champ> = <constante> |
<code_champ> = <constante> }
<constante>: { <constante_alphanumérique> | <constante_numérique> }
<constante_alphanumérique> : ‘<chaine_de_caractères>'
Ø Une constante alphanumérique est donc une chaîne de caractères encadrée par des apostrophes (alors qu'elles sont entourées par des guillemets en L4G).
Ø Une constante numérique doit utiliser le caractère point (.) en tant que séparateur décimal et ne pas utiliser de séparateur des milliers. Le format scientifique avec exposant n'est pas reconnu.
Ø L'opérateur « Like » remplace les opérateurs « Contient » et « DebutePar » du L4G Oxygène++.
Ø Par exemple, les conditions suivantes dans le format L4G et dans le format SQL sont équivalentes (le caractère % joue le rôle de caractère générique dans la syntaxe SQL) :
L4G |
Ø SQL |
DESIG,Contient,"CH" |
Ø DESIG Like ‘%CH%' |
DESIG,DebutePar, "CH" |
Ø DESIG Like ‘CH%' |
Ø Seules les formes ‘xxxxxx%' et ‘%xxxxx%' sont interprétées correctement comme constantes d'une condition « Like ». Si la constante ne vérifie pas une de ces formes, l'opérateur « Like » est interprété comme un opérateur « EgalA ».