Personnalisation des accès SQL dans les Segments, Vues Logiques ou Tables
Vous personnalisez des accès SQL dans les Lignes -GG, sur des lignes de type G. Sur la première ligne, vous indiquez l'accès que vous voulez personnaliser et sur les lignes suivantes, vous indiquez la ou les parties de l'accès que vous voulez modifier ou ajouter.
Procédure
- Déclarez l'accès SQL personnalisé sur la première ligne.
Dans le sous-onglet Lignes -GG d'un Segment, d'une Vue Logique ou d'une Table, cliquez sur Ajouter et sélectionnez G dans la zone Type.
Saisissez SQL au début de la zone Description pour indiquer que vous voulez personnaliser un accès SQL. Après un espace, indiquez le type d'accès à personnaliser. Le type d'accès est standard ou non standard. Il peut aussi correspondre à une méthode d'extraction.- Les accès standard, automatiquement pris en compte dans les instances des entités (Programme,
Ecran ou Composant Applicatif) appelant le Segment, sont les suivants :
- R pour SELECT
- RU pour SELECT FOR UPDATE
- W pour INSERT
- RW pour UPDATE
- D pour DELETE
- P pour OPEN CURSOR
- RA pour SELECT (Pacbench C/S)
- RN pour FETCH
- DC pour DECLARE CURSOR
- CL pour CLOSE CURSOR
Remarque : L'accès standard DC (DECLARE CURSOR) n'est pas géré pour les accès SQL où la génération du DC se fait en WORKING-STORAGE SECTION.Figure 1. Exemple de personnalisation de l'accès standard en sélectionType Description G SQL R
- Un accès non standard doit être explicitement demandé dans les instances d'entités appelant
le Segment. Il est codé sur un ou deux caractères de votre choix. Vous pouvez l'indiquer de deux
façons :
- Combinez-le à un accès standard si vous souhaitez ne modifier qu'une partie de l'accès
standard et laisser au générateur le soin de gérer la syntaxe. Dans ce cas, vous devez d'abord
saisir le code de l'accès non standard puis, après un blanc, le code de l'accès standard.
Figure 2. Exemple de personnalisation d'un accès non standard en sélection
Type Description G SQL R1 RA
- Utilisez-le seul si vous souhaitez introduire un accès entièrement nouveau. Dans ce cas,
l'accès doit être entièrement décrit et appelé en spécifique. La syntaxe (ponctuation ou
mot-clé par exemple) doit être entièrement gérée.Figure 3. Exemple d'introduction d'un accès non standard pour compter le nombre d'enregistrements dans la table des trajets
Type Description G SQL CP
- Combinez-le à un accès standard si vous souhaitez ne modifier qu'une partie de l'accès
standard et laisser au générateur le soin de gérer la syntaxe. Dans ce cas, vous devez d'abord
saisir le code de l'accès non standard puis, après un blanc, le code de l'accès standard.
- Une méthode d'extraction est un accès en sélection sur un Composant Applicatif. Elle est
constituée des ordres d’accès DECLARE CURSOR, OPEN CURSOR,
FETCH et CLOSE CURSOR, que vous pouvez personnaliser de deux
façons :
- Décrivez partiellement un seul accès personnalisé, en saisissant deux fois le type d’accès
EX.Figure 4. Exemple de déclaration de la méthode d’extraction NOMMETHODE
Type Description G SQL EX EX NOMMETHODE
- Décrivez entièrement les quatre accès, en combinant vos accès personnalisés à chacun des quatre
accès (DC, P, RN et CL).Figure 5. Exemple de personnalisation des quatre accès de la méthode d’extraction NOMMETHODE
Type Description G SQL D1 DC NOMMETHODE G SQL O1 P NOMMETHODE G SQL F1 RN NOMMETHODE G SQL C1 CL NOMMETHODE
Vous devez saisir le nom de la méthode en majuscules, à partir de la colonne 7 sur 10 caractères maximum.
L’extraction s’effectue selon un ou plusieurs critères indiqués dans le paramètre WHERE, et selon le tri spécifié dans le paramètre ORDER.
Remarque : Vous devez aussi spécifier les paramètres de sélection au niveau de la Vue Logique puisqu’ils font partie du message envoyé au Composant Applicatif. Pour cela, dans les Lignes -CE de la Vue Logique, sélectionnez E dans la zone Type de données de l'appel de chaque Rubrique constituant un paramètre de sélection. - Décrivez partiellement un seul accès personnalisé, en saisissant deux fois le type d’accès
EX.
- Les accès standard, automatiquement pris en compte dans les instances des entités (Programme,
Ecran ou Composant Applicatif) appelant le Segment, sont les suivants :
- Décrivez l'accès SQL personnalisé sur les lignes suivantes.
L'accès SQL est décrit par un ensemble de clauses (par exemple ACCESS, WHERE, ORDER). Chaque clause est décrite par un mot-clé et des données. A partir de la deuxième ligne, vous saisissez donc ces mots-clés, qui s'appliquent indifféremment à la personnalisation des accès standard et non standard.
Les données correspondantes remplaceront celles qui auraient été générées. Si elles doivent être ajoutées en complément, saisissez ADD devant ou derrière chaque mot-clé. Un mot-clé qui nécessite plusieurs lignes ne doit pas être répété sur chaque ligne.
Sélectionnez un type de ligne G pour les lignes suivantes. Saisissez le mot-clé et les paramètres nécessaires à la mise en œuvre de ce mot-clé dans la zone Description de la façon suivante :- ACCESS, suivi de l'accès SQL.
Ce mot-clé permet de réécrire la clause d'accès (par exemple SELECT, UPDATE, DELETE)
- COLUMN, suivi de la liste des colonnes.
Ces colonnes sont codées soit sous la forme SQL-code Rubrique (dans ce cas elles sont remplacées à la génération par leur nom relationnel), soit directement sous leur nom relationnel.
Chaque colonne peut être suivie (séparée par au moins un blanc) du code de la variable hôte (et indicateur), codée soit sous la forme :-code Rubrique (à la génération, le code Segment Ecran défini dans les lignes -CS sera inséré devant le :-code Rubrique), soit sous son nom de variable hôte. Si la variable hôte n'est pas codée, pour les ordres où elle est nécessaire, elle sera générée avec le code Segment Ecran et le code Rubrique indiqué dans la colonne (sous la forme SQL-code Rubrique). Sinon, il est obligatoire d'indiquer le code de la variable hôte.
Les paramètres associés à ce mot-clé ont des contraintes spécifiques de ponctuation :- Si le nom de colonne et la variable hôte ne peuvent tenir sur une ligne, vous pouvez utiliser une ou plusieurs lignes de type V mais uniquement pour le nom de la variable hôte; le nom de colonne ne peut être saisi que sur une seule ligne.
- Pour l'ordre UPDATE (RW) du mot-clé COLUMN, l'ensemble formé de la variable hôte et de son indicateur doit toujours être codé sur une seule ligne quel que soit le format de leur saisie.
- FROM, suivi d'une liste de tables.
A la génération, ce mot-clé est transformé en INTO ou reste à FROM selon le type d'accès.
- ORDER, suivi d'une liste de colonnes.
Ce mot-clé permet de préciser l'ORDER BY.
Les noms colonnes peuvent être codés sous la forme SQL-code Rubrique et les variables hôtes et indicateurs sous la forme :-code Rubrique.
- PARAM, suivi des paramètres complémentaires.
Ce mot-clé permet de coder des paramètres supplémentaires comme COUNT, HAVING. Le mot-clé ADD n'est pas nécessaire.
Les noms colonnes peuvent être codés sous la forme SQL-code Rubrique et les variables hôtes et indicateurs sous la forme :-code Rubrique.
- WHERE, suivi des critères de sélection.
Les noms colonnes peuvent être codés sous la forme SQL-code Rubrique et les variables hôtes et indicateurs sous la forme :-code Rubrique.
Remarque : Le délimiteur correspondant est automatiquement généré à la fin de chaque ligne. Lorsqu'un nom de colonne ou de variable hôte ne peut être saisi sur une ligne, vous sélectionnez le type V pour cette ligne, et saisissez la suite sur la ligne suivante, en sélectionnant à nouveau un type G. Dans ce cas, et si vous indiquez un nom de colonne et de variable hôte (sous forme :- ou non), la variable hôte doit être saisie sur une ligne différente du nom de la colonne. En revanche, si vous codez une variable hôte et son indicateur sous la forme :- (sans code Segment), ils doivent être saisis sur la même ligne.Exemples :- Exemple de personnalisation d'un accès non standard en sélection pour sélectionner un
numéro de trajet supérieur ou égal au numéro demandé. Vous modifiez seulement la clause WHERE mais vous ne voulez pas modifier directement l'accès standard car cette sélection n'est valable que dans quelques Ecrans.Figure 6. Exemple de personnalisation de l'accès non standard en sélection
Type Description G SQL RB RA G WHERE SQL-NOTJ >= :-NOTJ
- Exemple d'ajout d'un accès non standard pour compter le nombre d'enregistrements
dans la table des trajets.Il s'agit d'un accès non prévu en standard. Vous devez donc décrire un nouvel accès.Figure 7. Exemple de création d'un accès non standard
Type Description G SQL CP G ACCESS SELECT COUNT (*) G INTO :WWCA-COMPTEUR G FROM PTB0.TRAJET
La génération des mots-clés ne se fait que pour les accès standard ou assimilés à un accès standard (CP, R). Dans le cas de l'accès CP (non suivi par un type d'accès standard) il faut tout écrire sur la ligne G, y compris le mot-clé.
- Exemple de personnalisation d'un accès non standard en sélection pour sélectionner un
numéro de trajet supérieur ou égal au numéro demandé.
Si une méthode d’extraction est précisée dans la demande de service de sélection, vous pouvez indiquer les critères de sélection de deux façons :- Décrivez partiellement un seul accès personnalisé EX avec uniquement les
clauses nécessaires.
Type Description G SQL EX EX NOMMETHODE G WHERE ... G ORDER ...
- Décrivez entièrement les quatre accès personnalisés, en précisant pour chacun les différentes
clauses.
Type Description G SQL D1 DC NOMMETHODE description... G SQL O1 P NOMMETHODE description... G SQL F1 RN NOMMETHODE description... G SQL C1 CL NOMMETHODE description...
Remarques :Le format généré des Rubriques date et des Rubriques variables utilisées en paramètres des mots-clés (par exemple, la saisie de la colonne DATJOU (date du jour) comme paramètre de l'ordre ORDER) dépend du type de Bloc.
L'option UPPER=NO, introduite sur une ligne de type O dans les lignes -GO de l'instance appelant le Segment inhibe la conversion minuscules majuscules des valeurs saisies entre deux délimiteurs de littéral. La valeur du littéral est définie au niveau de la Bibliothèque.
La syntaxe des ordres SQL pour les blocs RDMS (organisation R) n'est pas implémentée. La règle de préfixage n'est pas appliquée. Le nom de la table est conservé, et le point situé en tête est supprimé, s'il existe.
- ACCESS, suivi de l'accès SQL.
Vos commentaires