Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : MUIbase - Traitement des données
(Article écrit par Steffen Gutmann et extrait de muibase.sourceforge.net - mars 2006)
|
|
Deux méthodes sont utilisables dans MUIbase pour le traitement des
données : par programmation ou l'éditeur de requêtes.
La méthode par programmation vous permet de créer des boutons dans
les masques de tables qui, sur pression, appelleront des fonctions
programmées. L'utilisation de cette méthode est décrite dans le
chapitre concernant l'éditeur
de structure et dans le chapitre à propos de la
programmation dans MUIbase.
Ce chapitre décrit l'utilisation de l'éditeur de requêtes, une
fenêtre où vous pouvez entrer des requêtes et consulter le résultat
dans une fenêtre défilante.
Requêtes Select-from-where
MUIbase utilise un système de requête du type "select-from-where"
comme dans les bases de données SQL. La requête vous permet d'afficher
le contenu des enregistrements d'une ou plusieurs tables. Seuls les
enregistrements qui correspondent à un certain critère se retrouvent
dans le résultat. La syntaxe (incomplète) d'une requête select-from-where est :
SELECT EXPRLISTE FROM TABLELISTE [WHERE TEST-EXPR]
[ORDER BY ORDERLISTE]
|
...où "EXPRLISTE" est une liste d'expressions, séparées par des virgules,
à afficher (souvent les noms de champs) ou une simple étoile "*" qui
correspond à tous les champs des tables spécifiées, "TABLELISTE" est une
liste de nom de tables, séparées par des virgules, desquelles les
enregistrements sont examinés, "TEST-EXPR" est l'expression qui est
testée pour chaque groupe d'enregistrements qui doit être inclus dans
le résultat, et "ORDERLIST" est une liste de champs, séparés par des
virgules, qui déterminent l'ordre pour afficher le résultat. Notez que
les clauses "WHERE" et "ORDER BY" sont optionnelles ; ce qui est indiqué
par les crochets [].
Par exemple, la requête :
...affiche le contenu des champs de tous les enregistrements de la table spécifiée.
SELECT ATTR1 FROM TABLE WHERE (LIKE ATTR2 "*Madonna*")
|
...affiche les valeurs du champ ATTR1 de tous les enregistrements de
TABLE pour laquelle le contenu du champ ATTR2 contient le mot Madonna.
Pour plus d'informations à propos des requêtes select-from-where et
notamment sa syntaxe complète, voir Programmation
de MUIbase, pour plus d'exemples voir le chapitre "Exemples de requêtes" plus bas.
Éditeur de requêtes
Pour saisir et exécuter des requêtes, ouvrez l'éditeur de requêtes
en sélectionnant le menu "Programme - Requêtes". L'éditeur de requêtes
peut gérer plusieurs requêtes mais une seule est est affichée. La
fenêtre de l'éditeur de requêtes contient les éléments suivants :
- Un champ de saisi de texte avec un bouton attaché. Le champ texte
indique le nom de la requête en cours. En pressant le bouton,
apparaissent une liste avec d'autres noms de requêtes ainsi que
d'autres boutons. Vous pouvez sélectionner une des requêtes
affichées en faire la requête courante, pressez le bouton "Nouveau"
pour créer une nouvelle requête, pressez le bouton "Dupliquer" pour
faire une copie de la requête sélectionnée, cliquez sur le bouton
"Trier" pour trier la liste des requêtes, ou pressez le bouton
"Supprimer" pour effacer la requête en cours. Pour quitter la
fenêtre sans rien modifier, cliquez de nouveau sur le bouton des
requêtes.
- Un liste de choix qui permet d'assigner une requête à une table.
À l'assignation d'une table, MUIbase lance cette requête lorsque
l'utilisateur sélectionne le menu "Table - Afficher tous les
enregistrements" de la table correspondante.
- Un bouton "Exécuter" qui compile et exécute le programme de requête
et affiche le résultat dans le fenêtre déroulante.
- Un bouton "Export" qui ouvre une fenêtre (voir chapitre "Exporter des requêtes en texte"
plus bas) pour exporter les résultats de la requête dans un fichier texte.
- Un bouton "PDF" (sur la plupart des systèmes) qui ouvre une fenêtre
(voir "Exporter des requêtes en PDF" plus bas) pour exporter les résultats de
la requête dans un fichier PDF.
- Un bouton "Imprimer" qui ouvre une requête (voir "Exporter des requêtes en PDF" plus bas)
pour imprimer les résultats au format PDF.
- Un bouton "Imprimer" qui ouvre une fenêtre (voir "Impression des requêtes" plus bas)
pour imprimer les résultats.
- Un champ de saisie pour taper le programme de requête. Vous
saisissez ici une requête de type select-from-where. Cependant, il
est possible d'entrer une expression du langage de programmation
de MUIbase. cela peut être utile si vous voulez faire des calculs
simples ou modifier certaines champs d'une table en utilisant un
programme simple. Veuillez noter que MUIbase entoure
automatiquement votre expression avec une paire de parenthèses.
Vous pouvez donc omettre d'utiliser les plus extérieures.
- Un affichage en liste qui montre les résultats de la requête en
cours. L'affichage est formaté en lignes et colonnes. La ligne
de titre contient les noms des champs de la requête
select-from-where (le plus souvent les noms des attributs). Sur
Les lignes suivantes est affiché le résultat de la requête, un jeu
d'enregistrement par ligne. Chaque champ est affichée dans sa
propre colonne. En cliquant sur le titre d'une colonne vous
pouvez trier la liste en fonction de cette colonne. Un second clic
sur la même colonne inverse l'ordre de tri. Sur Amiga vous pouvez
sélectionner une seconde colonne en maintenant la touche Maj
enfoncée tout en cliquant sur le titre. Si vous double-cliquez un
élément de la liste, et que cet élément était généré directement à
partir d'un enregistrement, alors cet enregistrement est affiché
dans le masque de table correspondant. C'est une façon simple
d'atteindre un enregistrement dans son masque de table.
L'éditeur de requête est non-modale. Cela signifie que vous pouvez
laisser l'éditeur de requête ouvert alors que vous travaillez avec le
reste de l'application. Vous pouvez à tout moment fermer l'éditeur de
requête, en cliquant sur le bouton de fermeture sur la barre de titre.
Exporter des requêtes en texte
Vous pouvez exporter les résultats d'une requête select-from-where
vers un fichier texte en appuyant sur le bouton "Exporter". Une fenêtre s'ouvrira contenant :
- Un champ texte pour indiquer le fichier d'exportation. À droite du
champ un bouton ouvre la fenêtre de sélection de fichier.
- Deux champs texte pour indiquer les délimiteurs d'enregistrement
et de champ. Vous pouvez saisir un caractère unique ou une
séquence d'échappement en tapant \n, \t, \f, \??? (code octal), ou \x?? (code hexa.).
- Un champ "Guillement double" qui peut être coché pour indiquer que
les champs doivent être protégés par des guillements doubles.
- Deux boutons "Exporter" et "Annuler" pour quitter la fenêtre.
Après avoir pressé le bouton Exporter, MUIbase ouvrira le fichier
indiqué et écrira le résultat de la requête en incluant une ligne
d'entête. Les champs sont écrit dans l'ordre des colonnes dans la liste.
Exporter des requêtes en PDF
Sur Windows, Mac OS X, Linux et MorphOS vous pouvez exporter les
résultats d'une requête vers un fichier PDF en pressant le bouton "PDF".
Sur MorphOS, la fenêtre d'impression contient les options ci-dessous :
- Un champ texte pour indiquer le fichier d'exportation. À droite du
champ un bouton ouvre la fenêtre de sélection de fichier.
- Une liste de sélection du format de page.
- Une option pour choisir l'orientation de la page : (Portrait ou Paysage).
- Une option pour le choix de la police de caractères et un champ
pour saisir la taille désirée. Il est possible d'entrer une fraction, par exmple 10,5.
- Un aperçu pour connaître le nombre de pages et vérifier que le texte entre dans la page.
- Deux boutons "Ok" et "Annuler" pour fermer la fenêtre d'impression.
Après avoir pressé le bouton "Créer un PDF", MUIbase ouvrira le
fichier indiqué et écrira le résultat de la requête en incluant une
ligne d'entête. Les champs sont écrit dans l'ordre des colonnes dans la liste.
Impression de requêtes
Après avoir exécuté une requête, vous pouvez imprimer le résultat en
cliquant sur le bouton "Imprimer" dans l'éditeur de requêtes. Cela ouvre
une requête d'impression qui contient les éléments suivants :
Sur MorphOS le bouton "Imprimer" ouvre une fenêtre semblable d'exportation
des requêtes en PDF (see Exporting queries as PDF). La fenêtre
contient les options suivantes :
- Une liste de sélection du format de page.
- Une option pour choisir l'orientation de la page : (Portrait ou Paysage).
- Une option pour le choix de la police de caractères et un champ pour saisir la taille
désirée. Il est possible d'entrer une fraction, par exemple 10,5.
- Un aperçu pour connaître le nombre de pages et vérifier que le texte entre dans la page.
- Deux boutons "Ok" et "Annuler" pour fermer la fenêtre d'impression.
Après avoir pressé le bouton "Créer un PDF", MUIbase générera un
fichier temporaire qu'il ouvrira dans un lecteur externe. Vous pouvez alors
utiliser les fonctionnalités de votre lecteur pour envoyer les résultats de
la requête à l'imprimante.
Sur les autres système Amiga, la fenêtre d'impression contient les options ci-dessous :
- Un champ "Délimiteur" où vous précisez comment les colonnes doivent être séparées.
"Espaces" place des caractères espaces entre chaque champs. La
justification est faite à gauche ou à droite en fonction du type
du champ (les nombres sont justifiés à gauche, le texte à droite).
"Tabulations" insère un caractère tabulation entre les colonnes.
Cela peut être utile si vous voulez utiliser la fenêtre
d'impression pour exporter des enregistrements (voir ci-dessous).
"Personnaliser" vous permet de préciser un délimiteur personnalisé à
afficher entre les champs.
- Un champ "Police" où vous précisez quelle police de caractères doit
être utilisée pour l'impression. NLQ signifie "qualité proche
d'une lettre" qui doit imprimer dans une meilleure qualité que "Brouillon".
- Un champ "Taille" où vous définissez la taille des caractères. Pica
imprime avec une police large (10 cpi), Elite avec une police de
taille moyenne (12 cpi) et Condensé avec une petite police (17 cpi).
- Un champ texte "Séquence d'initialisation" qui vous permet de
préciser votre imprimante. Le contenu de ce champ est directement
envoyé à l'imprimante à l'ouverture de celle-ci. Par exemple, vous
pouvez utiliser \33c comme séquence d'initialisation qui réinitialise votre imprimante.
- Un champ "Indentation" où vous pouvez préciser le nombre d'espaces
qui seront utilisés pour indenter chaque ligne en sortie.
- Un champ "Entête" qui, s'il est coché, imprime les noms de champs sur la première ligne.
- Un champ "Codes d'échappement". S'il n'est pas coché, l'impression de
tous les codes d'échappement est supprimé, donc les paramétrages
des champs "Police" et "Taille" sont ignorés et le contenu de la
séquence d'initialisation n'est pas imprimée. Supprimer
l'impression de tous les codes d'échappement est utile si vous
voulez générer un fichier ASCII, par exemple pour exporter des enregistrements.
- Un champ "Guillemets" qui, s'il est coché, entoure chaque champ de guillemets.
- Un champ "Après impression" où vous choisissez comment doit se
terminer l'extraction. Saut de page imprime un caractère saut de
page \f. Saut de ligne imprime un nombre de sauts de ligne \n.
Le nombre de sauts de ligne peut être saisi dans le champ texte à
la droite du bouton "Sauts de ligne". Rien n'imprime rien sur l'imprimante.
- Un champ texte "Sortie" avec un bouton attaché. Vous pouvez
utiliser le bouton pour ouvrir une requête de fichier et choisir
ou saisir un nom de fichier. Pour envoyer la sortie vers
l'imprimante entrez |lpr (Linux) ou PRT: (Amiga).
- Deux boutons "Ok" et "Annuler" pour fermer la fenêtre d'impression.
Quand vous en avez terminé avec tous les paramètres, cliquez sur le
bouton "Ok" pour lancer le travail d'impression.
Exemples de requêtes
Voici plusieurs exemples de requêtes pour vous donner une idée de la
puissance des requêtes select-from-where.
Supposez que nous ayons deux tables, "Personne" et "Chien". "Personne" a
les champs suivants : "Nom", un champ entier "Age", et deux champs de
référence "Pere" et "Mere" qui se réfèrent aux enregistrements père et mère
de la table "Personne". La table contient les enregistrements suivants :
Nom Age Pere Mere
--------------------------------
p1: Steffen 26 p2 p3
p2: Dieter 58 NIL NIL
p3: Marlies 56 NIL NIL
p4: Henning 57 NIL NIL
|
"Chien" a un champ texte "Nom", un champ de type liste "Couleur" et un
champ de référence "Propriétaire" qui se réfère au propriétaire dans la
table "Personne". La table contient les enregistrements suivants :
Nom Couleur Propriétaire
-----------------------
d1: Boy blanc p3
d2: Streuner gris NIL
|
Avec ces données, on peut exécuter les requêtes select-from-where suivantes :
...donne :
Name Age Pere Mere
--------------------------
Steffen 26 Dieter Marlies
Dieter 58
Marlies 56
Henning 57
|
(pour les attributs de référence le champ Nom de l'enregistrement référencé est affiché).
SELECT Nom "Enfant", Age,
Pere.Nom "Pere", Pere.Age "Age",
Mere.Nom "Mere", Mere.Age "Age"
FROM Personne WHERE (AND Pere Mere)
|
...donne :
Enfant Age Pere Age Mere Age
----------------------------------
Steffen 26 Dieter 58 Marlies 56
|
SELECT Nom, Couleur,
(IF Propriétaire Proprietaire.Nom "Pas de proprietaire") "Propriétaire"
FROM Chien
|
...donne :
Nom Couleur Propriétaire
------------------------
Boy blanc Marlies
Streuner gris Pas de propriétaire
|
SELECT a.Nom, a.Age, b.Nom, b.Age FROM Personne a, Personne b
WHERE (> a.Age b.Age)
|
...donne :
a.Nom a.Age b.Nom b.Age
---------------------------
Dieter 58 Steffen 26
Marlies 56 Steffen 26
Henning 57 Steffen 26
Dieter 58 Marlies 56
Henning 57 Marlies 56
Dieter 58 Henning 57
|
|