Chaînes et variables facultatives

Vous pouvez utiliser des crochets [ ] pour :


  • Inclure des chaînes et variables facultatives, ou des listes de chaînes et de variables dans la syntaxe des instructions SQL [%--%]

  • Tester la valeur d'une variable et insérer ou reconsidérer une valeur en fonction du résultat du test. [%--%? is true : is false]

  • Tester le contenu d'une variable [%--%=--? if true : if false]

Variable

Génération

Reverse engineering

[%--%]

Généré si la variable est définie. Si la variable est vide ou a la valeur NO ou FALSE, elle n'est pas générée

Reçoit une valeur si l'analyseur détecte un morceau de commande SQL correspondant à la variable. Si la variable est vide ou s'est vue affecter la valeur NO ou FALSE, elle n'est pas renseignée

[%--%? Is true : Is false]

pour tester la valeur de la variable (valeur conditionnelle)

Si la variable est true, Is true est généré, si la variable est false, Is false est généré

Si l'analyseur détecte Is true, Is true subit le reverse engineering, si l'analyseur détecte Is false, Is falsesubit le reverse engineering et la variable % % est définie à True ou False en fonction

[%--%=--? Is true : Is false]

pour tester le contenu de la variable (valeur conditionnelle)

Si la variable est égale à la valeur constante, Is true est généré, si la variable est différente, Is false est généré

Si l'analyseur détecte Is true, Is true subit le reverse engineering, si l'analyseur détecte Is false, Is falsesubit le reverse engineering

[.Z: [s1][s2]...]

.Z est ignoré

Spécifie que la chaîne et les variables entre crochets ne sont pas triés

[.O: [s1][s2]...]

Seul le premier élément répertorié est généré

Spécifie que l'analyseur du reverse engineering doit trouver l'un des éléments répertoriés pour valider l'instruction entière

Exemples


  • [%--%]

[%OPTIONS%]

Si %OPTIONS% n'est pas FALSE, n'est pas vide ou n'a pas la valeur NO, la variable est générée, ce texte est remplacé par la valeur de %OPTIONS% (options physiques pour les objets visibles dans la feuille de propriétés de l'objet).

[default %DEFAULT%]

Dans le reverse engineering, si un texte default 10 est rencontré lors du reverse engineering, %DEFAULT% est renseigné avec la valeur 10. Toutefois cette spécification n'est pas obligatoire et l'instruction SQL fait l'objet d'un reverse engineering même si la spécification est absente. Dans la génération du script, si la valeur par défaut est définie (10, par exemple) lors de la génération, le texte est remplacé par default 10, dans le cas contraire rien n'est généré pour le bloc.


  • [%--%? Is true : Is false]

    Vous pouvez utiliser une valeur conditionnelle pour une chaîne ou variable facultative. Deux conditions sont séparées par un signe deux points au sein de crochets utilisés avec la chaîne ou variable facultative. Par exemple, [%MAND%?Is true:Is false]. Si %MAND% est évalué comme true ou renseigné à l'aide d'une valeur (différente de FALSE ou NO) lors de la génération, ce texte est remplacé par Is true. Dans le cas contraire, il est remplacé par Is false.

  • [%--%=--? Is true : Is false]

    Vous pouvez également utiliser des mots clés pour tester le contenu d'une variable.

[%DELCONST%=RESTRICT?:[on delete %DELCONST%]]

  • Create table abc (a integer not null default 99)

Create table abc (a integer default 99 not null)

Ces deux commandes de création sont identiques, mais les attributs sont inversés.

En règle générale, le fichier XDB cible prend en charge uniquement une notation avec un ordre spécifique dans la chaîne et les variables. Si vous procédez au reverse engineering de ces deux commandes, l'une d'elles ne passera pas en raison de l'ordre des variables. Vous pouvez contourner cette limitation en utilisant la macro .Z de la façon suivante :

%COLUMN% %DATATYPE%[.Z: [%NOTNULL%][%DEFAULT%]]

Si vous utilisez cette macro, l'analyseur syntaxique du reverse engineering ne prend plus en compte l'ordre dans les variables.


  • [.O:[procedure][proc]]

    Cette instruction va générer "procedure".

    Lors du reverse engineering, l'analyseur va rechercher les mots clés "procedure" et "proc", si aucun d'entre eux n'est présent dans le script, la recherche échoue.

Utilisation des chaînes

Une chaîne placée entre crochets est toujours générée ; toutefois, que cette chaîne soit présente ou non dans l'instruction SQL n'annulera pas le reverse engineering de l'instruction courante puisqu'elle est facultative dans la syntaxe SQL de l'instruction. Par exemple, la syntaxe de création d'une vue inclut une chaîne :

create [or replace] view %VIEW% as %SQL%

Lorsque vous procédez au reverse engineering d'un script, et si ce dernier ne contient que create ou create or replace, l'instruction fait l'objet d'un reverse engineering dans les deux cas car la chaîne est facultative.


Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com