Dans l'onglet Lignes -DR, vous
décrivez les objets SQL qui composent la base de données. Une section Définition
de la ligne -DR permet d'indiquer le type de l'objet,
son nom externe, le code du Segment qui le représente, la table référencée
(réservé aux lignes de type J), le type de clé supporté par le Segment
et le type de mouvement généré.
La colonne Commentaires n'est
affichée que dans le tableau de l'onglet. Elle ne correspond pas à
une zone de la section de définition de la ligne d'appel. Elle affiche
un astérisque sur les lignes d'appel comportant des lignes -G. Ces
lignes -G de second niveau ont été indiquées avec le bouton Lignes
-G de la section de définition de la ligne d'appel. Si
vous placez le curseur sur cet astérisque, les lignes -G de la ligne
d'appel s'affichent dans une infobulle. Si vous cliquez sur le bouton
associé à l'astérisque, les lignes -G s'affichent dans leur éditeur
tabulaire et vous pouvez les mettre à jour. Vous pouvez aussi afficher
et mettre à jour les lignes -G avec le choix Editer les
commentaires du menu contextuel de la ligne d'appel.
Définition d'une ligne -DR
La
section
Définition de la ligne -DR s'affiche
lorsqu'une ligne de description est créée ou sélectionnée dans
la liste des
Lignes -DR.
Remarque : Vous pouvez compléter
les champs qui composent une ligne -DR au niveau de la section Définition de
la ligne ou bien directement dans le tableau.
- Type de record SQL
- Cette zone vous permet de saisir le type de l'objet SQL. Le contenu
de la liste est conditionné par le type de Bloc sélectionné dans la
Définition du Bloc de Base de Données.
Certains objets SQL ne sont
pas pris en compte pour des types de Blocs donnés :
- L'objet Espace n'est pas pris en compte dans SQL SERVER, NONSTOP
SQL, DBD2/D2, DB2/600, INTEREL RDBC, INTEREL RFM, SYBASE. Pour ALLBASE/SQL.
La notion d'Espace a été assimilée à la notion de DBEfileset.
- L'objet Alter Table n'est pas pris en compte dans un Bloc de type
INTEREL RFM, seul l'ajout de colonne est possible.
- L'objet Primary Key n'est pas pris en compte dans NONSTOP SQL,
ORACLE (versions antérieures à la V6), INTEREL RDBC, INTEREL RFM.
D'autres objets SQL sont exclusivement pris en compte
dans ORACLE V7, SYBASE et SQL SERVER :
- Package : package de fonction et de procédures,
- Fonction,
- Procédure,
- Trigger.
Les objets appartiennent à l'espace qui les précède.
Un Alter Table doit être précédé de la ligne appelant
la Table qu'il modifie. Un Index doit être précédé
de la ligne appelant la Table à laquelle il se rapporte. De même,
une Primary key ou Foreign key doit
être précédée d'une ligne Table portant le même code Table. Il n'est
pas possible de créer un Index sur une Vue; l'ordre CREATE
INDEX généré sera rejeté lors de la mise à jour du
catalogue. Pour les Blocs de type RDMS et ALLBASE/SQL, la Primary
Key n'est pas générée par une ligne dont le type d'objet
est Index; sa génération est incluse dans celle de la Table qui le
précède (ligne T). Le type d'une ligne Index, Primary
key ou Foreign key ne peut être modifié.
Il est nécessaire d'annuler la ligne puis de la recréer avec un autre
type. De même, le code Table indiqué sur une ligne Index, Primary
key ou Alter ne peut être modifié.
Tableau 1. Liste des objets SQLValeurs |
Description |
P : Package |
Espace Table (sauf pour INTEREL RDBC, INTEREL
RFM, NONSTOP SQL, SYBASE et SQL SERVER) |
T : Table |
Table |
V : Vue |
Vue |
I : Index |
Index |
A : Alter table |
Alter Table : Mise à jour colonnes |
K : Primary key |
RDMS : prise en compte lors de la génération
de la table qui la précède. DB2, DATACOM/DB, SQL/DS, ORACLE V6 V7,
DB2/2, DB2/6000, SYBASE et SQL SERVER : prise en compte lors de la
génération par un ordre Alter table.
|
J : Foreign key |
DB2, DATACOM/DB, SQL/DS, ORACLE V6 et V7, SYBASE
et SQL SERVER : prise en compte lors de la génération par un ordre
Alter table |
C : Package |
Package (uniquement ORACLE V7 ) |
E : Fonction |
Fonction (uniquement ORACLE V7) |
Q : Procédure |
Procédure (uniquement ORACLE V7, SYBASE, SQL
SERVER) |
R : Trigger |
ORACLE V7, SYBASE et SQL SERVER: Trigger |
- Nom externe ou Nom Contrainte
- Saisissez dans cette zone le nom manipulé par l'utilisateur. Il
est obligatoire pour un Espace Table. Par contre il est interdit pour
une Primary Key dans les Blocs de type DB2, DB2/2, DB2/6000 or DATACOM/DB).
Pour les autres types, le nom externe peut être défini à plusieurs
niveaux (type P). A la génération, le nom externe est généré par priorité
dans l'ordre suivant :
- Le nom indiqué à ce niveau,
- Ou bien, le nom indiqué dans le Code Structure du
Segment définissant l'objet concerné qui est pris en compte,
- Ou encore, le code du Segment définissant l'objet concerné qui
est pris en compte en dernier lieu.
Pour une Foreign key, cette zone correspond au nom de la contrainte
(8 caractères maximum). Cette zone doit être complétée par le code
de la Table référencée.
Mode de préfixation :
- La présence d'un point dans le nom externe d'une Table ou Vue
conditionnera le mode de préfixation pour DB2, SQL/DS, DB2/2 et DB2/6000
:
- Si le nom est de la forme PREFIXE.NOM,
ce nom sera considéré tel quel par Pacbase et le SGBD, c'est
à dire explicitement préfixé par vous.
- Si le nom ne contient ni point ni préfixe, il sera généré avec
un préfixe égal à votre code utilisateur (8 positions). Il sera considéré
tel quel par le SGBD, c'est-à-dire explicitement préfixé par Pacbase.
- Si le nom est de la forme .NOM, il sera
généré sans le point (NOM), de façon à ce que la préfixation soit
assurée par le SGBD.
- Table référencée
- Cette information n’est significative que pour une ligne de type
J (Foreign key). Elle contient le code Segment de la Table référencée,
c'est-à-dire, le code Segment de ligne Table qui précède la ligne
Foreign key. Pour renseigner ou modifier le contenu de cette zone,
cliquez sur le bouton Modifier. Une boîte de
dialogue s’ouvre et vous propose une liste des tables référencées
dans le Bloc Base de Données courant. Sélectionnez une Table parmi
celles qui vous sont proposées. Vous pouvez supprimer l’information
en cliquant sur le bouton Supprimer.
- Code Table ou Vue
- Vous devez sélectionner dans cette zone le code du Segment représentant
l'ensemble des colonnes d'une Table, d'une Alter Table ou d'une Vue.
Pour un Index, une Primary ou Foreign key, vous devez sélectionner
le Segment qui supportera la clé. Sur un objet de type Espace, cette
zone ne doit pas être renseignée. Pour renseigner ou modifier le
contenu de cette zone, cliquez sur Modifier.
Dans la boîte de dialogue qui s'ouvre, sélectionnez un Segment
dans la liste. Si la liste est volumineuse, vous pouvez la réduire
en saisissant une chaîne de caractères qui sert de filtre (le filtre
se fait sur le code ou sur le libellé de l'instance).
Avertissement : Seuls les Blocs de type DB2 ou ORACLE
peuvent appeler des Segments ayant des Large Objects dans leur composition.
Les LOBs sont incompatibles avec tout autre type de Bloc.
Lorsque
cette sélection est effectuée, une icone précède le code du Segment,
elle indique si l'instance représente un Segment mono-structure ou
non. Vous pouvez ouvrir l'éditeur du Segment sélectionné
à partir de cette zone, en double-cliquant sur le code du Segment
pour connaître, par exemple, sa composition.
- Type de clé
- Entrez dans cette zone le type de clé à générer.
Tableau 2. Valeurs
possibles pour le type de cléOptions |
Description |
U : UNIQUE |
Sur une ligne de type I :
génère l'ordre UNIQUE. |
De 0: Rubrique du sous-schéma 10 à 9
: Rubrique du sous-schéma 9 |
Sur une ligne de type V :
Vue constituée de la sélection des Rubriques de ce sous-schéma dans
le Segment. La valeur 0 correspond au sous-schéma 10. |
Toutes : Toutes Rubriques |
Toutes les Rubriques du Segment sont incluses
dans la Vue. |
R : restrict C :
Cascade
S : set null
|
Sur une ligne de type J :
Restrict (valeur par défaut pour les bases de type DB2 uniquement) Cascade
(DB2, SQL/DS, DB2/2, DB2/6000 et ORACLE V7 uniquement)
S : Set
null (DB2, SQL/DS, DB2/2 et DB2/6000 uniquement)
|
BLANC : package standard BODY
: package BODY |
Sur une ligne de type C (ORACLE
V7) : indique le type de package : package BODY ou package normal. |
A: after B:
before |
Sur une ligne de type R :
indique le déclenchement du trigger ou de la rule : Après (After),
Avant (Before). |
- Type de mouvement généré
- Cette zone permet de générer les ordres CREATE, ALTER et DROP.
Tableau 3. Valeurs possibles pour le type de mouvement généréOptions |
Description |
C : Création (CREATE) |
Création : Valeur attribuée par défaut à la
création de la ligne; génère un ordre CREATE. Seule valeur possible
pour un Alter Table (ligne de type A). |
M : Modification (ALTER) |
Modification (sauf pour SQL/400 et INGRES SQL)
: Ce choix est possible sur les lignes de type Table uniquement, et
pour tous les types de bases sauf SQL/400 et INGRES SQL. Le choix
Modification génère un ordre ALTER. |
D : Annulation (DROP) |
Annulation : Génère un ordre DROP.
Pour un type de ligne J (Foreign key) et K (Primary
Key), génère un DROP PRIMARY KEY et un DROP
FOREIGN KEY dans un ordre ALTER TABLE. |
N : pas de génération |
Pas de génération par la procédure GPRT en option
C2. |
- Lignes -G
- Ce bouton vous permet d’accéder à l’assistant de création des Lignes
-G associées à la ligne de description. Vous pouvez saisir
des éléments de génération sur des lignes -GG associées à la ligne
de description sélectionnée. Vous pouvez également ajouter des commentaires
sur des lignes -GC associées à la ligne de description.
Définition de la ligne -DRXXXK
Les lignes
-K affichent les Rubriques composant le Segment utilisé comme clé
de la Table (ou Index), ou Alter Table. Dans la section
Cconfiguration
des clés, vous sélectionnez les colonnes qui composent
la clé de la Table ou un Alter Table et vous spécifiez l'ordre
SQL à prendre en compte pour la génération.
- Ordre ou type d'action
- Vous indiquez ici l'ordre SQL devant être pris en compte
pour la génération du Bloc. Les choix proposés dans la liste déroulante
de cette zone sont spécifiques aux Index et Alter Table seulement.
- Les choix communs pour les Index et Alter Table sont les suivants
:
Tableau 4. Ordre ou type d'action commun à un Index et un Alter
TableOptions |
Description |
Pas d'ordre ou ajout d'une
colonne (ADD) |
Pas de génération d'ordre de tri (valeur
par défaut) |
A : Ordre ascendant ou annulation d'une
colonne (DROP) |
La colonne est triée en ordre ascendant. |
D : Ordre descendant ou annulation d'une
colonne (DROP) |
La colonne est triée en ordre descendant. |
Tableau 5. Ordre ou type d'action pour un Alter Table uniquementOptions |
Description |
M : Modification d'une colonne
(MODIFY) |
La colonne peut être modifiée. |
- Pour une Rubrique appartenant à un Index, vous pourrez sélectionner
un ordre de tri ascendant ou descendant. Il est également possible
de choisir l'ordre de tri par défaut. Ainsi, aucun ordre de tri ne
sera précisé dans le DLL et c'est l'ordre de tri par défaut du SGBD
qui sera utilisé. Pour une Rubrique appartenant à une Alter Table,
comme vous pouvez le voir dans les deux tableaux, vous pouvez choisir
entre l'ajout, l'annulation ou la modification d'une colonne.
Il s'agit ici d'indiquer le type de modification sur la colonne représentée
par la Rubrique en question : ORDRE ADD pour l'ajout d'une colonne,
ORDRE MODIFY pour la modification d'une colonne, ou ORDRE DROP pour
l'annulation d'une colonne.
- Ces ordres seront pris en compte à la génération du Bloc. Aucun
ordre SQL n'est à indiquer pour une Primary ou Foreign key.
- Rubrique
- Dans cette section, vous pouvez sélectionner les Rubriques qui
composeront la Clé (ou Index) de la Table, ou les colonnes d'un Alter
Table. Vous devez pour cela cliquer sur Modifier.
Une boîte de dialogue s'ouvre et affiche la liste des Rubriques
appelées dans le Segment. Cette liste peut contenir des Rubriques
qui n'ont pas été définies parce qu'elles ont été créées
localement, sous l'onglet Lignes -CE de
l'éditeur de Segments. Elles sont identifiées comme des Descriptions
de Rubriques.