The K Desktop Environment

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

  1. Généralités
    1. Précisions sur KMySql
    2. Installation
    3. Lancer KMySql
  2. Caractéristiques de base
    1. Installer un plugin
    2. Se connecter à un serveur
    3. Parcourir une base de données
    4. Soumettre des requêtes
    5. Affichage des tables résultantes
    6. Paramétrage
  3. Utilisation des formulaires et des requêtes statiques
    1. Pourquoi utiliserai-je un formulaire ?
    2. Utilisation d'un formulaire dans KMySql
    3. Un exemple simple
    4. Requête statique
  4. Création de table et gestion des colonnes
  5. Utilisation de l'éditeur de table
  6. Foire Aux Questions
    1. KMySql se plante avec un message du type undefined symbol: forEveryItem__9KTreeList...
    2. KMySql ne compile pas / KMysql se plante...
    3. Y-a-t-il un moyen d'éditer les entrées des tables avec KMySql ?
    4. Y-a-t-il d'autres plugins que celui pour mySQL ?
    5. Je veux écrire un plugin !
    6. Questions sur mySQL
    7. Je ne peux pas ajouter un serveur parce que la liste des serveurs est vide. Que se passe-t-il ?
  7. 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.

    1.2. Installation

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 :

    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 :

  1. Titres (Labels) : affiche simplement du texte.
  2. Champs de texte (Text Fields) : permet à un utilisateur d'y saisir du texte.
  3. Listes Défilantes (Combo boxes) : permet à l'utilisateur de choisir un élément dans une liste.
  4. Boutons (Push buttons) : produit un évenement quand on clique dessus.
  5. Boîte à cocher (Check-box) : Le widget bien connu.
  6. 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 ).
IdNomAutre champs...
51Angeloblah...
07Jonesblah...
42Ignatusblah...
29Laneblah...
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