Lignes -DR dans un Bloc Base de Données

Dans l'onglet Lignes -DR, vous décrivez les objets SQL qui composent la base de données. Vous indiquez ces informations directement dans le tableau ou dans la section de définition de la ligne qui s'ouvre quand vous créez une ligne ou sélectionnez une ligne dans le tableau.

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

Les explications suivantes se réfèrent aux zones telles qu'elles sont affichées dans la section de définition de la ligne.
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 fonctions 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 SQL
Valeurs 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 Mise à jour des 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 Trigger (ORACLE V7, SYBASE et SQL SERVER)
Nom externe ou Nom Contrainte
Saisissez 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é dans ce champ
  • Le nom indiqué dans le Code Structure du Segment définissant l'objet concerné
  • Le Segment définissant l'objet concerné

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.

La présence d'un point dans le nom externe d'une table ou vue conditionne le mode de préfixage pour DB2, SQL/DS, DB2/2 et DB2/6000 de la façon suivante :
  • Si le nom est de la forme PREFIXE.NOM, il est 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).
  • 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 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-en une et cliquez sur OK. Elle s'affiche dans le tableau dans la colonne Table référencée.

Vous pouvez aussi spécifier la table directement depuis la colonne Table référencée.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.
Code Table ou Vue
Vous devez sélectionner le Segment représentant l'ensemble des colonnes d'une table, alter table ou 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 et cliquez sur OK. Le Segment s'affiche dans le tableau dans la colonne Table/Vue.

Vous pouvez aussi spécifier le Segment directement depuis la colonne Table/Vue.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.
Remarque : 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 icône 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 Segment.

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, l'ordre UNIQUE est généré.
De 0: Rubrique du sous-schéma 10 à 9: Rubrique du sous-schéma 9 Sur une ligne de type V, vous indiquez que la vue est 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

RESTRICT sur une ligne de type J (valeur par défaut pour les bases de type DB2 uniquement).

CASCADE pour DB2, SQL/DS, DB2/2, DB2/6000 et ORACLE V7 uniquement.

SET NULL pour DB2, SQL/DS, DB2/2 et DB2/6000 uniquement.

BLANC : package standard
BODY : package BODY
Sur une ligne de type C (ORACLE V7), vous indiquez le type de package (package BODY ou package standard).
A: After
B: Before
Sur une ligne de type R, vous indiquez le déclenchement du trigger ou de la rule.
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) Cette valeur est attribuée par défaut à la création de la ligne. Elle génère un ordre CREATE. C'est la seule valeur possible pour un alter table (ligne de type A).
M : Modification (ALTER) Cette valeur est possible sur les lignes de type table uniquement, et pour tous les types de bases sauf SQL/400 et INGRES SQL. Elle génère un ordre ALTER.
D : Annulation (DROP) Cette valeur génère un ordre d'annulation (DROP). Pour un type de ligne J (foreign key) et K (primary key), elle 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.
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 Configuration 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 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 table
Options 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 uniquement
Options 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 à un alter table, vous pouvez choisir entre l'ajout, l'annulation ou la modification d'une colonne. Il s'agit d'indiquer le type de modification sur la colonne représentée par la Rubrique (ADD, MODIFY ou DROP).
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.

Quand vous cliquez sur Modifier, une boîte de dialogue s'ouvre avec 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, dans l'onglet Lignes -CE de l'éditeur de Segments. Elles sont identifiées comme des Descriptions de Rubriques. Sélectionnez une Rubrique et cliquez sur OK. Elle s'affiche alors dans la colonne Rubrique du tableau.

Vous pouvez aussi spécifier la Rubrique directement depuis la colonne Rubrique.

Deux méthodes sont possibles :
  • Positionnez le curseur dans la colonne et saisissez directement un nom. Pour faciliter la saisie, vous pouvez afficher un assistant de contenu en cliquant simultanément sur Ctrl et la barre d'espace. Si vous avez commencé à saisir un nom, l'assistant propose les instances commençant par cette saisie. Si vous saisissez le nom d'une instance qui n'existe pas et validez, la saisie n'est pas prise en compte.
  • Cliquez sur le bouton qui s'affiche quand vous positionnez votre curseur dans la colonne. Un assistant de sélection s'ouvre alors pour vous permettre de sélectionner une instance.

Vos commentaires