Le Descripteur de données

Le Descripteur de données (ou Tableau de bord de la base de données) est accessible depuis le Menu Développeur ou depuis le Menu Accueil (sous-menu Maintenance).

Il permet de créer, modifier ou supprimer :

  • les Bases de données
  • les Tables
  • les Champs.

 

Le Tableau de Bord de la base de données

Il permet d'afficher les tables d'une base. En ouvrant une table, on accède au Descripteur de Données.

On accède également à la gestion des bases par le bouton "Gérer" à droite de la zone "Base de données" :

 

 

Des outils supplémentaires sont disponibles dans le menu texte du haut (disponibles également dans le Menu développeur également dans Outils et Analyses) :

 

Le descripteur de Données

Il comprend une entête avec les propriétés de la table et une liste contenant les champs de la table.

Les propriétés de la table

Code table

Rappel du choix réalisé avec l'écran précédent de la forme CodeBase.CodeTable.

Libellé

Libellé de la table.

 

Composant Fonctionnel

 

Composant fonctionnel lié à la table pour une gestion des Droits d'accès.

Option

Si l'option Multidossier est sélectionnée, cette table pourra être utilisée par différentes sociétés. Chaque société verra ses propres données enregistrées dans un sous-répertoire du répertoire de la localisation. Ce sous répertoire aura comme nom : NomDeLaSociete.$SO.

Localisation

Endroit où seront stockées les données de cette table, sous Oxygène ++ ou sous SQL Server.

Sous Oxygène ++ :

[OXYPP] représente le répertoire complet d'OXYPP choisi lors de l'installation. Par défaut : [OXYPP] sera traduit par : C:\OXYPP.

Si la concaténation du code de la base et du code de la table n'excède pas 7 caractères, la localisation des données est par défaut "\Oxypp", les données sont stockées dans le fichier "\Oxypp\CodeBase-CodeTable .$D1".

Dans le cas contraire, le système va créer un sous répertoire d'Oxypp du même nom que le code de la base. Le fichier ".$D1" de données sera alors égal au 8 premiers caractères du code de la table.

Exemple 1 :
Code Base : COMPTA
Code Table : FOURNISSEURS
Les données seront stockées par défaut dans : \OXYPP\COMPTA\FOURNISS.$D1
Exemple 2 :
Code Base : CR
Code Table : DEMO
Les données seront stockées par défaut dans : \OXYPP\CR-DEMO.$D1

Exemple 3 :

Localisation : [OXYPP]\COMPTA\DEMO Code Base : CR Code Table : DEMO Les données seront stockées par défaut dans : \OXYPP\COMPTA\CR-DEMO.$D1

Exemple 4 :

Code Base : GC Code Table : CLIEN%X Les données seront stockées par défaut dans : \OXYPP\GC-CLIEN%1X.$D1 pour la première table

Type de table

L'option Table disque est l'option par défaut. Les données seront sauvegardées sur disque dans le répertoire défini dans la localisation. Une Table mémoire est une table temporaire de travail. Les données ne sont conservées que pendant la durée de vie de l'objet qui manipule la table. Si la Table mémoire est partagée, les données seront accessibles par tous les objets en mémoire (actifs) et ce tant que l'objet qui a créé les données n'est pas détruit. Les tables mémoire seront utilisées comme des tables ordinaires.

L'option Structure d'interface est spécifique au table appliquant la norme Composant.

Vue SQL , est une option utilisable uniquement pour une table dont la sauvegarde des données a été spécifiée sous SQL Server. Un bouton "Définir la vue" permet de définir les liaisons des champs. La validation créera dans SQL la vue (CREATE VIEW) et cette table sera utilisable comme une table normale.

Taille d'un enregistrement

Information indiquant la mémoire nécessaire pour chaque enregistrement. Cette taille est fixe quel que soit le contenu de l'enregistrement ; même vide.

Nombre prévu d'enregistrement

Permet d'optimiser la taille des index de type Hash-code. Cette valeur ne s'adapte pas au nombre réel d'enregistrements. Elle doit donc être recalculée pour les dossiers importants. Une valeur inadéquate (ex:1000 pour 100000 enregistrements) provoquera des lenteurs mais, plus grave, risque aussi de fausser les lectures.

Valeur par défaut : 1000

Voir aussi l'outil Recalcul des NPE

 

La liste des champs

Code

Le code du champ est limité à 30 caractères. Il est utilisé en programmation pour manipuler les données (filtre, lecture, affectation, ...) et sous l'éditeur d'écran pour définir des contrôles.

Le code d'un tableau a une syntaxe particulière :

Code : TAB(15)
Type : Chaine
Longueur : 10
Représente un tableau de 15 chaînes de 10 caractères de long, On fera référence, dans les écrans, par exemple, à TAB(1), ou TAB(10) ..etc

Libellé

Le libellé pourra être repris par l'éditeur d'écran, pour définir par défaut les titres de colonnes de liste, les titres de colonnes des éditions, ...

Type

Le type du champ sera choisi dans une combobox à valeurs fixes intégrée à la liste.

Lg

La longueur du champ est par défaut de 1 pour un type Chaîne ou Clé composée. Elle est de 8 pour le type Date, où elle n'est pas saisissable mais modifiable dans les Propriétés. Elle n'est pas non plus saisissable pour les champs de type numérique car elle dépend des options de format que l'on choisit. Dans ce cas, elle est automatiquement calculée à partir des options choisies dans lesPropriétés du champ.

Format

Le format n'est pas saisissable ici. Il s'agit par défaut du format relatif au type choisi. Il peut être modifié dans les Propriétés du champ.

 

Les flèches Haut et Bas (groupe Champ en bas à gauche) permettent de modifier l'ordre des champs de la table. Ces boutons ne sont accessibles qu'en mode modification ou création.

La définition d'un champ par cet écran peut suffire à l'utilisation de la table sous OXYGENE.

 Il est néanmoins possible d'affiner ces définitions, de les rendre encore plus appropriées à l'utilisation prévue en indiquant des informations complémentaires. Il suffit pour cela de sélectionner la ligne du champ voulu et de cliquer sur le bouton Propriétés.

Les Propriétés d'un champ

 

Type d'index

Il est possible de définir un index sur un champ. Le HashCode est adapté uniquement aux champs alphanumériques sur lesquels on souhaite un accès direct et rapide. Le séquentiel indexé est adapté aux champs pour lesquels on souhaite un classement direct. Le choix d'un index doit être judicieux car il entraîne une manipulation des données plus longue (création, modification). L'index est automatiquement Séquentiel indexé si le type est Clé composée. Il est dans ce cas interdit à la saisie.

Voir : Index et clés composées

Contrôle de l'absence d'homonymes sur ce champ

Si cette option est cochée, la validation d'une modification ou d'une création entraînera un contrôle sur l'ensemble des enregistrements existants. Si un homonyme existe, un message préviendra l'utilisateur et forcera la saisie sur la zone concernée jusqu'à ce qu'il n'y ait plus d'homonymie dans le fichier.

Majuscules/Minuscules indifférenciées sur les opération de recherche

Si cette option est cochée, lors d'une opération de recherche les champs correspondant au critère de recherche seront restitués, quel que soit la manière dont le caractère est passé comme critère, en majuscule ou en minuscule.
Exemple : soit le critère "paris" donné pour définir une recherche. Les enregistrements "paris", "Paris", "PARIS", etc ... seront concernés si cette option est cochée.

Clé Primaire

Cette option cochée signifie que le champ est la clé primaire de la table.

Lien

Cette zone de saisie permet de définir un lien qui peut exister entre deux tables. D'une manière générale, un lien se définit pour les tables Composant ainsi : C: CodeTable

et R: CodeTable pour les autres type de table.

Voir : Syntaxe des liens

 

L'onglet actif correspond au type qui a été choisi dans la liste des champs, et ce pour le champ en cours de définition. Le passage à un autre onglet fera perdre les informations qui auraient été saisies dans l'onglet précédent et entraînera le changement du type du champ en cours.

 

Format spécifique

Si cette option est cochée, le format pourra être librement saisi dans la zone Format. De plus, si une modification est réalisée dans l'onglet du type en cours, le format et la longueur ne seront pas recalculés, comme ils le sont automatiquement dans le cas de champs numériques.

Format

Si l'option précédente est cochée, cette zone pourra être renseignée librement par l'utilisateur. Il faudra néanmoins respecter le format OXYGENE++.

 

Plusieurs types de champs : Chaîne, Entier, Date et Clé composée, vous sont proposés, mais il également possible de définir des champs de type TABLEAU

Pour cela, il suffit de définir son code et le nombre d'indices du tableau entre parenthèses : CODE (x)

Par exemple : CATEG(12)

 

Onglet Chaîne

Longueur de la chaîne

La valeur reprend celle donnée dans la liste. Elle est modifiable dans cet onglet.

En majuscule

Si cette option est cochée, les caractères saisis seront convertis en majuscules.

Troncable

Si cette option est cochée et dans le cas où la taille de la zone d'affichage est inférieure à la taille de la valeur effective du champ, seuls seront affichés les caractères pouvant effectivement s'inscrire dans la zone. Sinon, si la valeur du champ ne peut s'inscrire entièrement, des étoiles seront affichées pour prévenir du problème de manque de place.

Combobox d'alignement

Cette combobox à valeurs fixes permet de choisir si le contenu du champ doit être affiché aligné à gauche (par défaut), aligné à droite ou centré dans la zone de saisie ou d'impression.

 

 

Onglet Entier, Simple, Double, Monnaie

 

Nombre de chiffres avant la virgule

La valeur par défaut est 5. Une modification de cette valeur entraînera un calcul automatique de la longueur du champ dans l'onglet Généralités.

Après

Cette zone n'est pas saisissable, car par définition, un entier n'a pas de valeur décimale.

Séparer les milliers par un espace

Si cette option est cochée, l'affichage de la valeur du champ sera par exemple 12 345 pour la valeur 12345.

Compléter à gauche par des étoiles

Si cette option est cochée et si la longueur effective d'un enregistrement est inférieure à la longueur définie pour le champ, des étoiles compléteront l'affichage à gauche.

Troncable

Si cette option est cochée et dans le cas où la taille de la zone d'affichage est inférieure à la taille de la valeur effective du champ, seuls seront affichés les chiffres pouvant effectivement s'inscrire dans la zone. Sinon, si la valeur du champ ne peut s'inscrire entièrement, des étoiles seront affichées pour prévenir du problème de manque de place d'affichage.

Combobox d'alignement

Cette combobox à valeurs fixes permet de choisir si le contenu du champ doit être affiché aligné à gauche, aligné à droite (par défaut) ou centré.

 

Les onglets Simple, Double et Monnaie possèdent les mêmes options que l'onglet Entier. Seule la possibilité de saisir un nombre de chiffres après la virgule est ajoutée.

 

Onglet Date

Siècle

Si l'option est cochée, la date sera sur 8 caractères, l'année sera sur 4 caractères, sinon la date et l'année seront respectivement sur 6 et 2 caractères.

Troncable

Si cette option est cochée et dans le cas où la taille de la zone d'affichage est inférieure à la taille de la valeur effective du champ, seuls seront affichés les caractères pouvant effectivement s'inscrire dans la zone. Sinon, si la valeur du champ ne peut s'inscrire entièrement, des étoiles seront affichées pour prévenir du problème de manque de place d'affichage.

Combobox d'alignement

Cette combobox à valeurs fixes permet de choisir si le contenu du champ doit être affiché aligné à gauche (par défaut), aligné à droite ou centré dans la zone de saisie ou dans la zone d'impression.

 

Onglet Clé composée

 

Clé composée

Une clé composée se définit comme la concaténation de plusieurs champs de la table (au moins deux). Un contrôle sur l'existence effective des champs étant réalisé, il est nécessaire qu'ils aient été définis avant la clé qui les utilise. Ce champ est en fait un champ de travail servant à optimiser les performances des requêtes multicritères fréquemment utilisées. L'utilisation en programmation est identique à un autre champ pour définir des tris, des classements, .... La syntaxe de définition de cette clé est :
CodeChamp1 ; CodeChamp2 ; ... ; CodeChampN
Si la requête doit être définie selon un ordre décroissant, il suffit d'insérer le caractère "-" devant le code du champ concerné.
Exemple : CodeChamp1 ; - CodeChamp2. Dans ce cas, la requête sera croissante sur le champ 1 puis décroissante sur le champ 2.

Longueur de la

chaîne

La longueur n'a aucune incidence sur l'utilisation de la clé composée. Elle est automatiquement calculée (somme des longueurs des champs qui la composent) et n'a d'intérêt que si l'on souhaite afficher son contenu.

Troncable

Si cette option est cochée et dans le cas où la taille de la zone d'affichage est inférieure à la taille de la valeur effective du champ, seuls seront affichés les caractères pouvant effectivement s'inscrire dans la zone. Sinon, si la valeur du champ ne peut s'inscrire entièrement, des étoiles seront affichées pour prévenir du problème de manque de place d'affichage.

Combobox d'alignement

Cette combobox à valeurs fixes permet de choisir si le contenu du champ doit être affiché aligné à gauche (par défaut), aligné à droite ou centré dans la zone de saisie ou dans la zone d'impression.

 

Il est important de noter que le résultat de la clé composée ne correspond pas à la concaténation du contenu des champs qui la composent. Prenons l'exemple de la clé définie par la concaténation du champ CODE et du champ CLIENT. Considérons les enregistrements suivants :

CODE CLIENT
AA PRADEAU
AAP RADEAU
AA RADE

La concaténation du contenu des deux premiers champs semble donner le même résultat. Mais le tri sur la clé composée va en fait donner :

AA PRADEAU
AA RADE
AAP RADEAU

Le tri a bien été réalisé tout d'abord sur le contenu du premier champ, puis sur le contenu du second et non pas sur la concaténation du contenu des champs.

 

Voir aussi : Index et clés composées