Chapitre IV Les outils QBF et TABLES
  • IV-1 QBF (Query By Forms) *
    • IV-1-1 Introduction *
    • IV-1-2 Recherche de données *
      • IV-1-2-1 Opérateurs de recherche : *
      • IV-1-2-2 Caractères de remplacement pour recherches sur chaîne de caractères *
    • IV-1-3 fonctions de QBF *
      • IV-1-3-1 Phases *
      • IV-1-3 2 Cibles *
      • IV-1-3-3 Principales fonctions *
  • IV-2 TABLES *
    • IV-2-1 Introduction *
      • IV-2-1 TABLES par l'exemple *
      • Création d'une table *
  • IV-3 QBF Mono-relation par l'exemple *
    • IV-3-1 Introduction *
    • IV-3-2 Ajout de lignes *
    • IV-3-3 Sélection de données *
    • IV-3-4 Demande de tri *
    • IV-3-5 Mise à jour *
    • IV-3-6 Affichage d'une fenêtre *
  • IV-4 QBF Multi-relations par l'exemple *
    • IV-4-1 Définition d'une jointure simple *
    • IV-4-2 Utilisation d'une jointure *

IV-1 QBF (Query By Forms)  
IV-1-1 Introduction
QBF est une interface permettant de :
  • rechercher des données, éventuellement avec des critères de sélection, 
  • ajouter des données (saisie), 
  • effacer des données, 
  • mettre à jour des données, 
  • afficher les données sélectionnées sous forme de tableau ("Table Field"), 
  • consulter le catalogue des tables (Tables catalog).
IV-1-2 Recherche de données Pour rechercher les données on utilise les options Retrieve et Update du menu QBF.

On écrit dans le champ de la colonne sur laquelle se fait la sélection sa valeur exacte si on veut une égalité, ou un critère de sélection pour une recherche plus complète.

Souvent le champ n'est pas assez large pour permettre de voir l'ensemble de la requête, dont la partie gauche n'est plus visible alors au fur et à mesure qu'on la tape.

On peut, et c'est souvent plus performant, faire des recherches sur plusieurs colonnes à la fois.

IV-1-2-1 Opérateurs de recherche : Les opérateurs de comparaison sont : 
 
<=  >=  !=

Les opérateurs logiques sont : 
 

and  or

 

Les opérateurs de comparaison ont priorité sur "and", qui a lui-même priorité sur "or".

On peut aussi utiliser des parenthèses imbriquées.

IV-1-2-2 Caractères de remplacement pour recherches sur chaîne de caractères Lorsqu'on fait une sélection de données, selon par exemple la valeur que doit avoir une colonne, on peut utiliser des caractères de remplacement ("wildcard") :

% chaîne quelconque de caractères

_ un caractère quelconque

[ ] pour indiquer un choix de caractère parmi plusieurs

Exemples : 
 

E% chaînes commençant par E
% chaînes se terminant par n
[A-J]% chaînes commençant par A, B, C, ..,J
[L-R]___  chaînes de 4 lettres commençant par L, M,..,R
C___ chaînes de 5 lettres commençant par C et se terminant par E 

 

A la différence de sql, les chaînes ne doivent pas être mises entre apostrophes.

IV-1-3 fonctions de QBF

IV-1-3-1 Phases

Les tâches que l'on peut accomplir sous QBF se répartissent en deux phases :
  • définition de Jointure, où l'on définit les objets ("cibles", ou "targets") utilisés pour la recherche et la manipulation des données de la base, 
  • exécution de requête, pendant laquelle la recherche et les manipulations sont effectivement entreprises.
IV-1-3 2 Cibles
  • "QBFNames : c'est l'association d'une grille d'écran et d'une table, ou d'une grille d'écran et d'une jointure; les QBFNames sont créées avec Vifred.
  • JoinDefs : une jointure, c'est à dire une ou plusieurs tables reliées ensemble et se comportant comme un objet unique.
  • Tables : une table ou une vue de la base de données.
IV-1-3-3 Principales fonctions
Fonction Correspondance sql
ajout (append) insert
selection (retrieve) select
mise à jour (update) update , delete

 

QBF permet de :

  • définir une jointure, 
  • utiliser QBF sur une jointure, 
  • consulter le catalogue des jointures


IV-2 TABLES  
IV-2-1 Introduction
Le menu TABLES permet de :
  • Créer une table :
    • choisir Tables dans le menu INGRES 
      ou faire :
    • $ tables nom_base
    • choisir l'option Create ;
    • donner le nom de la table, le nom de chaque colonne et le type des données de chaque colonne; les types de données dans Tables sont un peu différents des types de données dans sql ;
    • sauver la table avec l'option Save du menu.
  •  Copier les spécifications d'une table, et éventuellement les modifier, en utilisant l'option GetTableDef de Create
  • Détruire une table 
    • positionner le curseur sur le nom de la table et choisir l'option Destroy.
  •  Examiner la structure d'une table et la définition de ses tables :
    • choisir l'option Examine après avoir positionné le curseur.
  • Interroger une table grâce à l'option Query, en affichant les données sélectionnées une par une (SimpleFields) ou sous forme de tableau (Tablefield).

  •  

     

    On a alors les fonctions de QBF (append, retrieve, update) sur la table en question.

    Le déplacement du curseur se fait par la touche TAB, ou en utilisant les flèches.


    IV-2-1 TABLES par l'exemple
Pour appeler le MENU/INGRES vous tapez :
     $ ingmenu nom_base
exemple :  $ ingmenu parcauto
 
Pour sélectionner un des outils INGRES se positionner avec les touches flèches sur l'outil désiré et sélectionner la touche Go du menu.

Sous le tableau des différents outils INGRES vous avez une ligne de menu. Cette ligne vous donne les touches fonctions accessibles à un instant donné.

Un > en fin de la ligne de menu au bas de l'écran indique qu'il existe d'autres options. Pour visualiser ces options tapez deux fois sur la Menu Key. Pour revenir au début de la ligne de menu tapez une fois sur la Menu Key.

(voir le chapitre mise en oeuvre d'Ingres)

Création d'une table Positionner le curseur sur l'outil Tables, faites Go.

Pour créer une nouvelle table, choisissez l'option Create.

L'écran de création de table apparaît. Donnez un nom à votre table, par exemple foy_st1.

En vous déplaçant avec la touche TAB positionnez-vous sur la colonne Column Name ; rentrez le nom de votre première colonne. La touche TAB vous fait passer dans la colonne marquée Data Type où vous saisissez le type des données de votre première colonne. Puis vous passez à la deuxième colonne en utilisant la touche flèche descendante .
 
 

Créer ainsi la table foy_st1 ayant les colonnes suivantes :

ident i4, an i1, depcom i4, nbpers i1, cnaiss i1, cprof i1, nbvoi i1, revenu i1, nom varchar(20)

Vous pouvez aussi utiliser l'option GetTableDef avec la table foyer pour la modifier. 

Votre table étant saisie, choisissez l'option End de la ligne de menu pour sauvegarder la structure de votre table.




Retournez au menu principal d'INGRES en choisissant l'option End.

Étudiez les informations saisies en faisant Go le curseur étant positionné sur la ligne Tables du menu principal.

Placez le curseur sur le nom de la table créée, foy_st1, puis choisissez Examine.

S'il existe d'autres tables dans votre base, vous pouvez en voir la définition en choisissant l'option NewTable du menu Examine, qui vous demandera d'entrer le nom d'une autre table de votre choix ou en choisir une dans le menu déroulant par ListChoices.




Revenez au menu INGRES en faisant End deux fois de suite.


IV-3 QBF Mono-relation par l'exemple  
IV-3-1 Introduction
Pour utiliser QBF :
 
 
  • Appelez le menu principal INGRES en tapant 
$ ingmenu nom_base exemple :  $ ingmenu parcauto
 
  • Positionnez le curseur sur la ligne Queries, puis sélectionnez Go.
  • Dans le nouveau menu, choisissez QBF et faites Go.


  • Choisissez alors l'option Tables.
  • Sélectionnez le nom de la table construite, par exemple foy_st1, suivi de Go
  • Sélectionnez alors l'option SimpleFields .
IV-3-2 Ajout de lignes Choisissez l'option Append sur le menu.

La première ligne de la table s'affiche dans un cadre vierge.

Saisissez quelques lignes avec les valeurs suivantes; faites Append quand une ligne est saisie.
 

ident 
an 
depcom 
nbpers 
cnaiss 
cprof 
nbvoi 
revenu 
nom
92312 
84 
93063
25 
93 
petit
92312 
86 
93063
25 
93 
petit 
95018 
84 
95476
29 
95 
henri
98632 
86 
75116
19 
30 
henriot

 

Faites End pour sortir du mode ajout. Un message vous confirme le nombre de lignes saisies.

IV-3-3 Sélection de données
  • Choisissez l'option Retrieve
  • Pour demander toutes les lignes de la table, sélectionnez Go.
La première ligne de la table s'affiche sur l'écran.
  • Pour visualiser les suivantes, sélectionnez Next
  • quand la dernière ligne est atteinte, le message No more rows in query apparaît au bas de l'écran, et les lignes sont remises à blanc. 
  • Pour visualiser un sous-ensemble de lignes de la table, entrez une valeur dans une colonne, puis sélectionnez Go.
Dans la colonne nbvoi par exemple, rentrez la valeur 3 : une seule ligne s'affichera.

La remise à blanc de l'écran s'effectue par Query.

Pour exécuter à nouveau la commande précédente, sélectionnez LastQuery.

IV-3-4 Demande de tri Order permet de trier les lignes sélectionnées. Tapez "1" dans la colonne de tri principal, "2" dans la colonne de tri secondaire, etc...

Si vous vous trompez, vous pouvez effacer votre saisie par Blank...

Sélectionnez End pour retourner à l'écran de recherche dans la table, puis Go pour déclencher la sélection.

Par défaut les lignes sélectionnées sont triées en ordre ascendant. Un d ajouté derrière le numéro de tri permet d'obtenir un tri descendant.

Effectuez un tri principal sur l'année, et un tri secondaire sur la colonne cprof. 

Revenir au menu des fonctions QBF en faisant End

IV-3-5 Mise à jour Vous avez la possibilité de mettre à jour les informations déjà présentes dans la base.

Sélectionnez Update. Un cadre vierge apparaît. Les options de menu sont identiques à celles de Retrieve.

Pour effectuer une mise à jour dans une table, sélectionnez au préalable les lignes à modifier : par exemple nbvoi > 0. La première ligne s'affiche à l'écran. 

Les options du menu sont Next (ligne suivante), Query (pour retourner au mode interrogation), Delete (suppression de la ligne affichée), Save (sauvegarde des mises à jour), ListChoices, Help, End.
 
 




Sélectionnez 2 fois de suite End pour retourner à l'écran Tables Catalog de QBF.

QBF demande confirmation si vous essayez de sortir sans sauvegarder vos mises à jour.

IV-3-6 Affichage d'une fenêtre Positionnez le curseur sur la table foyer et faites Go.

Sélectionnez TableFields pour obtenir une fenêtre. Faites Go.

En sélectionnant Retrieve, vous obtenez l'édition de la table sous forme de fenêtre, avec plusieurs lignes affichées en même temps.

Demandez l'édition de toutes les données de la table en sélectionnant Go.

Lorsque toutes les lignes ne tiennent pas dans la fenêtre, les touches de déplacement du curseur vous permettent de faire défiler le contenu de la table dans la fenêtre.
 
 


 
 


IV-4 QBF Multi-relations par l'exemple  
IV-4-1 Définition d'une jointure simple
Cet exercice décrit comment créer une jointure entre deux tables quand il existe une (ou plusieurs) colonne(s) commune(s) à ces deux tables, portant le même nom, et sur la(es)quelle(s) sera basée la jointure des tables.
 
 

Appelez la base parcauto : 

$ ingmenu parcauto  Dans le menu principal choisissez Queries, faites Go.

Dans le menu obtenu choisissez QBF.

Sélectionnez Joindefs sur l'écran QBF Start-Up Frame pour éditer le catalogue des jointures.

Sélectionnez Create. L'écran Joindef Definition apparaît.

Rentrez un nom de jointure dans le champ réservé (vous aurez besoin d'un nom si vous essayez de sauvegarder la définition de jointure).

Pour définir une jointure père-fils, entrez le nom de la table père avec la valeur master dans la colonne Role et le nom de la table fils avec la valeur detail dans la colonne Role, en vous déplaçant avec la touche TAB.

Faites une jointure foyer / vehicule.




En demandant Joins(4), on affiche la fenêtre de définition de la jointure :
 
 

IV-4-2 Utilisation d'une jointure Sélectionnez Retrieve. Un écran contenant les colonnes des deux tables s'affiche. Le champ jointure apparaît une seule fois. La table de détail est éditée sous forme de fenêtre.

Pour sélectionner des lignes entrez la requête puis choisissez Go. Par exemple sélectionnez ident = 95476

Sélectionnez les lignes correspondant à l'année 84
 
 



Le premier père et ses lignes correspondant dans la table fils s'affichent sur l'écran. Avec le curseur dans la fenêtre, utilisez les touches de déplacement du curseur pour faire défiler les différents fils associés au père, si nécessaire.

Pour obtenir le père suivant, sélectionnez Nextmaster.
 
 

Tapez End deux fois pour retourner à l'écran de définition des jointures.

Save vous permet de sauver la jointure, dont le nom est désormais dans le catalogue.

Ensuite, sélectionnez End.