Le Manuel de KMySql
30 août 1999
Ce manuel décrit les fonctionnalités
de la version 1.1.8 de KMySql
Table des matières
-
Généralités
-
Précisions sur KMySql
-
Installation
-
Lancer KMySql
-
Caractéristiques de base
-
Installer un plugin
-
Se connecter à un serveur
-
Parcourir une base de données
-
Soumettre des requêtes
-
Affichage des tables résultantes
-
Paramétrage
-
Utilisation des formulaires et des requêtes statiques
-
Pourquoi utiliserai-je un formulaire ?
-
Utilisation d'un formulaire dans KMySql
-
Un exemple simple
-
Requête statique
-
Création de table et gestion des colonnes
-
Utilisation de l'éditeur de table
-
Foire Aux Questions
-
KMySql se plante avec un message du type undefined
symbol: forEveryItem__9KTreeList...
-
KMySql ne compile pas / KMysql se plante...
-
Y-a-t-il un moyen d'éditer les entrées des
tables avec KMySql ?
-
Y-a-t-il d'autres plugins que celui pour mySQL ?
-
Je veux écrire un plugin !
-
Questions sur mySQL
-
Je ne peux pas ajouter un serveur parce que la liste des
serveurs est vide. Que se passe-t-il ?
-
Contact
1. Généralités
1.1. Précisions sur KMySql
KMySql est un client de base de données mis au point initialement
pour mySQL. Il est désormais possible de l'utiliser pour accéder
à d'autres SGBDRs depuis l'implentation du système de plugins.
Le premier but de KMySql est d'apporter un client réellement
utilisable pour remplacer le client standard en mode texte de mySQL. Il
est atteint depuis que KMySql permet à l'utilisateur d'envoyer n'importe
quelle requête SQL au serveur. En plus de cela, KMySql peut gérer
plusieurs connections sur différents serveurs en même temps.
Enfin, il était souhaitable que KMySql apporte un GUI agréable
pour accéder à la base de données. Ceci est loin d'être
terminé, mais plusieurs caractéristiques sont déjà
présentes : une visualisation par arbre permet de parcourir facilement
la base de données, un tableau affiche le résultat des requêtes,
un éditeur relativement complet permet de créer ses tables,
et la création de formulaires agrémente le tout.
Ce que KMySql n'est pas : Un serveur de base de données.
MS Access. Une application stable et aboutie.
Les archives de KMySql sont accessibles sur le site
principal de KMySql. Vous pouvez aussi les trouver sur le site
ftp de KDE. KMySql est disponible sous forme de sources (tar.gz)
et au format binaire i386 (rpm). Pour installer les fichiers
bianires, l'instruction suivante devrait bien fonctionner ( si ce n'est
pas le cas, référez-vous au man de rpm ) :
rpm -Uvh kmysql-x.x.x-i386.rpm
Pour compiler et installer le paquetage des fichiers sources, il suffit
de faire :
tar zxfv kmysql-x.x.x.tar.gz
cd kmysql-x.x.x
./configure
make
make install (en tant que root)
Vous devrez aussi installer un ou plusieurs plugins pour permettre à
KMySql d'accéder aux serveurs de base de données. Référez-vous
directement aux manuels spécifiques pour les installer.
1.3. Lancer KMySql
Après l'installation, vous pouvez lancer KMySql en tapant simplement
kmysql
& à la ligne de commande. Vous pouvez aussi le lancer à
partir du panneau, mais il faudra éventuellement le relancer pour
cela. Dans tous les cas, cela ne marchera que si votre répertoire
d'exécutables KDE ( la plupart du temps /opt/kde/bin ) apparaît
dans votre variable d'environnement PATH. Si vous avez besoin d'aide à
ce propos, référez-vous à votre documentation KDE.
2. Caractéristiques de base
2.1. Installer un plugin
Avant toute chose, vous devez dire à KMySql quel plugin vous souhaitez
utiliser. Pour en installer un, sélectionnez le menu File/Modules...
, puis cliquez sur Add. Ensuite, vous devez indiquer le répertoire
où se trouve le plugin. Un nom de plugin est de la forme : kmp_xxxxxx.so.
Par défaut, ils sont installés dans $KDEDIR/apps/kmysql/plugins.
2.2. Se connecter à un serveur
Après avoir installé au moins un plugin, vous pouvez vous
connecter à un serveur en sélectionnant File/Add server
et en remplissant le formulaire qui apparaît. Utilisez la liste défilante
pour sélectionner le type de serveur auquel vous souhaitez vous
connecter. Chaque plugin correspond à un type spécifique
de serveur. Après avoir cliqué Ok et si tout marche
bien, vous découvrirez un nouvel élément dans la vue
arborescente, sur la gauche. Pour se connecter au serveur, il faut utiliser
le menu contextuel ( cliquez dessus avec le bouton droit ) et selectionner
Connect,
ou tout simplement cliquer deux fois dessus. Vous devriez être dorénavant
capable de parcourir les données du serveur à partir de l'arborescence.
2.3. Parcourir une base de données
La vue en arborescence est le centre de contrôle de KMySql grâce
aux menus contextuels ( bouton droit de la souris ). Chaque élément
de la vue possède un menu contextuel propre, essayez-les tous !
Vous pouvez aussi cliquer deux fois de suite pour obtenir une réaction
standard. Par exemple, un double clic sur une table lance un select
* de la table. Vous pouvez aussi créer/effacer des bases et
des tables par les menus contextuels. Remarquez que vous ne voyez que les
bases de données auxquelles vous êtes connecté.
Quand une action retourne des données (select ... par
exemple), elles sont affichées dans le tableau de la partie droite
de la fenêtre principale. Vous pouvez aussi regarder la barre de
statut qui délivre des informations sur ce qu'il se passe.
2.4. Soumettre des requêtes
Cependant, seules les actions basiques sont accessibles par l'interface
GUI. Pour toutes les requêtes qui n'ont pas été prévue,
il vous faudra alors les envoyer à la main. Pour ce faire, il suffit
de les taper dans la boîte d'édition juste en dessous de la
vue arborescente et de cliquer sur le bouton Submit. Vous pouvez
aussi presser les touches Ctrl-Entrée pour l'envoyer. Vous
remarquerez que toute nouvelle requête correcte est affichée
au bas de la fenêtre principale, qui sert d'historique. Si vous cliquez
deux fois sur la requête historiée, vous obtiendrez selon
vos paramétrages soit une ré-expéditon de la requête,
soit son affichage dans la boîte d'édition. (voir 2.6.
Paramétrages)
2.5. Affichage des tables résultantes
Quand une requête renvoie une table, elle est affichée dans
la partie droite de la fenêtre principale. Par défaut, l'option
Default
view est utilisée, mais vous pouvez créer d'autres vues
grâce au menu Views/New ou en entrant un nom dans la boîte
de la barre d'outils et en pressant Enter. Pour passer d'une vue
à une autre, utilisez le menu défilant de la même barre
d'outils. Vous pouvez placer une vue dans une fenêtre externe en
sélectionnant le menu Views/Windowize.
Vous pouvez aussi exporter la fenêtre courante en une table HTML
avec le menu Views/Export HTML.
2.6. Paramétrage
Selectionnez le menu File/Settings pour mettre au point KMySql.
Remarquez que le paramétrage concerne les plugins courants et les
configurations des serveurs, et si vous sauvez les paramètres, KMySql
reprendra la configuration.
3. Utilisation des formulaires
3.1. Pourquoi utiliserai-je un formulaire
?
Les formulaires sont très utiles quand vous voulez réaliser
des requêtes préconçues à travers une fenêtre
GUI agréable. C'est très utile pour plusieurs raisons :
-
Cela vous évite d'avoir à écrire la même requête
n
fois en ne changeant que quelques valeurs ça et là.
-
N'importe qui peut utiliser des formulaires pour accéder aux ressources
de la base de données sans rien connaître au SQL. Bien sûr,
les formulaires doivent d'abord être préparés par quelqu'un
qui connaît le SQL et la base.
3.2. Utilisation d'un formulaire
et de requêtes statiques dans KMySql
Dans KMySql, les formulaires sont associés aux bases. Pour créer
un formulaire, il faut cliquer avec le bouton droit sur une base et sélectionner
New
form. L'éditeur de dialogue apparaît alors ...
Un formulaire est composé d'une trame contenant plusieurs widgets.
À ce point, il y a six types de widget disponibles :
-
Titres (Labels) : affiche simplement du texte.
-
Champs de texte (Text Fields) : permet à un utilisateur d'y saisir
du texte.
-
Listes Défilantes (Combo boxes) : permet à l'utilisateur
de choisir un élément dans une liste.
-
Boutons (Push buttons) : produit un évenement quand on clique dessus.
-
Boîte à cocher (Check-box) : Le widget bien connu.
-
Sélecteur de date (Date picker) : Permet à l'utilisateur
de choisir une date.
Pour créer un nouveau widget, il faut cliquer sur son icône
dans la barre d'outil. Chaque widget, ainsi que la trame, possède
un menu contextuel. Pour paramétrer un widget, sélectionnez
Properties
dans ce menu. Chaque widget doit posséder un nom propre qui pourra
être utilisé pour récupérer la valeur du widget
( voir plus bas ). De ce fait , la fenêtre de propriétés
dépend du type du widget.
Titre : Ce widget permet d'afficher du texte. Sa valeur
( inutile ) correspond au texte.
Champ de texte : Ce widget permet à l'utilisateur d'entrer
du texte dans une zone. La valeur de ce widget correspondra au texte entré.
Liste défilante : Les liste donnent à l'utilisateur
le choix entre plusieurs valeurs. Vous pouvez donner explicitement
toutes les valeurs valables. Dans ce cas la valeur du widget sera la même
que le texte sélectionné. Un autre moyen pour donner
les valeurs à la liste est de simplement spécifié
un requête SQL qui retournera les valeurs. Cette requête doit
retourner une ou deux colonnes, et autant de lignes que vous le désirez.
Si la requête SQL retourne une colonne, la valeur du widget sera
la même que le texte sélectionné. Si il y a deux colonnes,
le texte affiché dans la liste sera pris dans la première
colonne et la valeur prise dans la deuxième colonne sur la même
ligne.
Exemple : Disons, que vous avez la table suivante ( nommée MyTable
).
Id | Nom | Autre champs... |
51 | Angelo | blah... |
07 | Jones | blah... |
42 | Ignatus | blah... |
29 | Lane | blah... |
Vous pouvez donner à la liste la requête suivante : SELECT
Nom, Id FROM MyTable.
Ainsi, si l'utilisateur sélectionne l'entrée Ignatus,
la valeur de la liste sera 42.
Boîte à cocher : Ce widget possède un titre
et permet à l'utilisateur de le cocher ou le décocher. De
ce fait, vous devez lui donner deux valeurs, une pour l'état coché
( checked value ) et l'autre pour l'état non coché ( unchecked
value ). Vous pouvez aussi spécifier l'état initial
de la boîte avec l'initial state.
Sélecteur de date : Ce widget affiche un calendrier et
permet à l'utilisateur de choisir une date. La valeur de ce
widget sera la date sélectionnée mise au format mySQL ( AAAA-MM-JJ
).
Bouton : Un bouton produit une action quand on clique dessus. Il
y a trois actions possibles : Cancel ferme le formulaire sans rien
faire d'autre ; Submit lance la requête, et Help affiche
le message d'aide spécifié dans les propriétés
du formulaire.
Pour paramétrer le formulaire, il suffit de cliquer sur le cadre
avec le bouton droit.
Ensuite, il faut déterminer la requête qui sera exécutée
lorsque le formulaire sera soumis. Vous pouvez le faire dans la fenêtre
des propriétés du formulaire. Ceci a surtout un intérêt
si vous utilisez les données saisies dans le formulaire. Pour se
faire, vous pouvez récupérer la valeur de chaque champs en
plaçant son nom entre ' $ '. Par exemple, si vous avez un
champ nommé Nom, vous pouvez récupérer la valeur
entrée par l'utilisateur dans la variable $Nom$.
Une fois que votre formulaire est fini, il faut le sauver grâce
au menu Form/Save. Si tout se passe bien, vous devrez voir un nouveau
formulaire dans l'arborescence, disposé juste en-dessous de
la base sélectionnée. Cet élément possède
aussi un menu contextuel que vous pouvez obtenir en cliquant dessus avec
le bouton droit.
Pour lancer le formulaire, sélectionnez Execute dans le
menu contextuel, ou cliquez deux fois sur le formulaire dans l'arborescence.
Attention, le formulaire est sauvegardé directement dans la base.
Vous devez donc règler correctement les droits d'accès pour
vous permettre d'en créer un. Si vous souhaitez contrôler
les accès au formulaire, il faut savoir que KMySql utilise deux
tables pour les stocker : __KmysqlForms et __KmysqlFields.
Elles ne sont pas visibles à partir de l'arborescence mais vous
pouvez y accèder par des requêtes SQL. Ces deux tables sont
créées dans chaque base possédant au moins un formulaire.
Contactez votre administrateur si vous rencontrez des problèmes.
Il est conseillé de ne donner que des droits de lecture à
l'utilisateur final, et des droits d'écriture à un forms
manager.
3.3. Un exemple simple
On se donne une table très simple nommée Amis qui
contient deux champs textes (VARCHAR(127) par exemple) : nom
et ville. Bien entendu, vous pouvez saisir les enregistrements à
la main, en entrant un requête INSERT INTO Amis VALUES...
Mais regardons ce qui peut être fait avec un formulaire.
Cliquez avec le bouton droit sur la base contenant notre table et sélectionnez
New
form. Donnez lui un nom dans le style de Nouvel Ami, positionnez
un bouton d'action Submit. Puis, ajoutez deux champs de texte nommés
Nom
et Ville. Ensuite, saisissez la requête suivante :
INSERT INTO Amis (nom, ville) VALUES ('$Nom$', '$Ville$')
Si tout se passe bien, chaque utilisation du formulaire devrait vous rajouter
une entrée dans votre table. Attention ! n'oubliez pas les apostrophes
autour de vos variables textes, sinon l'utilisateur n'obtiendra que des
erreurs de syntaxe ! Maintenant, vous pouvez sauvegarder votre formulaire
et l'utiliser !
Nous allons maintenant créer un formulaire pour faire des recherches
dans la table. Appelons le nouveau formulaire Recherche ami et mettons
dedans les deux mêmeschamps Nom et Ville et le bouton.
Il faut ensuite entrer la requête suivante :
SELECT * FROM Amis where ('$Nom$'='' or nom='$Nom$') and ('$Ville$'='' or ville='$Ville$')
Remarquez que cette requête permet à l'utilisateur de laisser
un ou plusieurs champs vides par l'utilisation de '$Champ$'=''
avec un OR.
3.4. Requêtes Statiques
Vous souhaiterez sûrement obtenir un moyen aisé de lancer
un requête complexe, mais qui ne nécessite pas de formulaire
parce qu'elle ne varie pas. KMySql introduit des requêtes statiques,
affichées dans la vue arborescente, et qui sont exécutées
directement quand on clique deux fois dessus.
Pour en créer une, il suffit de sélectionner New static
query dans le menu contextuel de la base de donnée. Vous pourrez
alors l'exécuter, l'éditer et l'effacer en cliquant dessus
avec le bouton droit. (Un double clic l'exécute.)
4. Création de tables et gestion des colonnes
Pour créer une table, il faut selectionner le menu correspondant
dans le menu contextuel de base.
Vous pouvez éditer, visualiser et détruire les colonnes
de la table grâce au menu contextuel.
Vous pouvez aussi renommer les tables en sélectionnant Rename
dans le menu.
5. Utilisation de l'éditeur de table
La version 1.1.6 apporte cette nouvelle fonctionnalité, mais elle
est actuellement en version alpha, et doit être utilisée précautioneusement.
Pour éditer une table, sélectionnez
Edit dans le menu
contextuel de la table. La table entière est alors affichée,
et vous pouvez l'éditer. Pour éditer une cellule, cliquez
deux fois dessus, modifiez son texte et pressez
Enter. Tapez Escape
ou cliquez n'importe où dans la table pour annuler. Une fois que
vous avez terminé, selectionnez le menu Table/Done ou cliquez
sur l'item correspondant dans la barre d'outils.
6. Foire Aux Questions
6.1. KMySql se plante avec un message
du type undefined symbol: forEveryItem__9KTreeListPM9KTreeListFP13KTreeListItemPv_bPv
Cela veut dire qu'il y a une incompatibilité entre la distribution
binaires de et vos librairies de fonctions. Le seul moyen de résoudre
ce problème est que vous compiliez vous-même KMySql. Ne soyez
pas effrayés par ça, c'est vraiment très simple !
Voir 1.2 Installation.
6.2. KMySql ne compile pas / KMysql
se plante...
Ce serait sympa de m'envoyer un mail décrivant précisément
votre système et l'erreur reportée. KMySql est supposé
fonctionner correctement avec Qt >= 1.42 et KDE >= 1.1.1. Si vous utilisez
des versions plus anciennes, évitez de m'envoyer un mail AVANT d'essayer
de le faire marcher avec les mises à jour ;)
6.3. Y-a-t-il un moyen pour éditer
les entrées d'une table avec KMySql ?
Oui, c'est maintenant possible avec la version 1.1.6. Mais, cette fonctionnalité
en est encore au stade de développement alpha. Faîtes donc
très attention en l'utilisant ! Allez voir 4. L'éditeur
de table.
6.4. Y-a-t-il d'autres plugins que
celui pour mySQL ?
Oui, mais seulement pour mini-SQL ( aussi connu sous le nome de mSQL )
et pour Postgres. Ceux-ci fonctionnent seulement pour des utilisations
simples et les fonctions spécialisées pour mySQL ne fonctionnent
pas. D'autres plugins pour d'autres bases de données vont probablement
bientôt arriver !
6.5. Je veux écrire un plugin
!
Génial ! Envoie-moi juste un mail auparavant, dans le but de prévenir
l'écriture simultanée du même plugin ! Je recommande
de regarder le plugin mysql pour voir comme en réaliser un. Remarquez
que KMySql installe tous les fichiers à inclure (headers files)
dans $KDEDIR/include/kmysql/.
6.6. Questions à propos de
mySQL
S'il vous plait, ne me posez pas de question sur mySQL lui-même.
Consultez plutôt sa documentation vraiment complète ou contactez
une personne compétente à partir de site principal
http://www.mysql.org.
Je n'ai vraiment pas le temps de répondre à de telles questions,
et je ne suis pas un spécialiste de ce produit !
6.7. Je ne peux pas ajouter un serveur
parce que la liste des types de serveur est vide. Que se passe-t'il ?
Avant d'ajouter un serveur, vous devez installer le plugin correspondant
au serveur via le menu File/Modules. Voir chapître
2.1.
7. Contact
Voici la page officielle de KMySql : www.xnot.com/kmysql/.
Si vous avez des problèmes avec KMySql, envoyez vos mail ici
: kmysql@penguinpowered.com
Il y a une mailing liste pour KMySql, où j'envoie les annonces
et messages relatifs à KMySql. Pour s'y inscrire, il suffit d'envoyez
un mail à cette adresse
avec 'subscribe' dans le titre.
Auteur : Frédérik BILHAUT bilhaut_f@mail.cpod.fr
Quelques liens : KDE, mySQL,
Freshmeat.net