TP de BD avec Emacs

De Ensiwiki
Aller à : navigation, rechercher

TP de BD avec Emacs

Les TP de BD se font en principe sous SQLPlus, mais ce logiciel a le mauvais goût de ne pas fournir un prompt potable : à part ajouter des caractères à la fin et en supprimer, il ne fait rien (pas d'historique, pas d'édition au milieu du texte écrit, et pas tous les petits raccourcis claviers si utiles que fournit readline).

Mais heureusement, Emacs est là : grâce au mode sql-oracle, vous avez le prompt directement dans emacs, avec tout ce qu'il faut : navigation dans le texte tapé, coloration syntaxique, auto-complétion, et tout ce que vous voulez d'autre.


Configuration

Il n'y a rien à configurer, tout est déjà disponible sur ensibm!

Utilisation

Pour lancer le mode sql-oracle, comme pour toutes les commandes: M-x sql-oracle.

Il vous demandera votre identifiant, votre mot de passe, et pour database, laissez vide.

Pour se balader dans l'historique : C-<flèches>.

Pour aller plus loin

Il existe d'autres modes emacs pour SQLPlus, plus évolués. Le mode sqlplus permet d'écrire les requêtes dans un buffer normal, et d'envoyer la requête courante au SGBD. Le résultat est affiché dans un autre buffer: la vue est découpée en deux. Vous travaillez alors sur un fichier .sqp contenant des commentaires et les requêtes, ce qui est très pratique.

Installation

Pour l'installer, il vous faut décider d'un dossier où vous stockerez les bibliothèques lisp. Un standard est d'utiliser ~/.emacs.d, mais faites comme vous voulez. Téléchargez le fichier sqlplus.el et placez le dans ce dossier.

Ensuite, ajoutez ceci à votre .emacs

;;à remplacer par votre dossier
(add-to-list 'load-path (expand-file-name "~/.emacs.d" ))
(require 'sqlplus)
;;association automatique avec les fichiers .sqp
(add-to-list 'auto-mode-alist '("\\.sqp\\'" . sqlplus-mode))

Attention : ce mode n'est pas compatible avec la toolbar pour la version d'emacs installée par défaut sur ensibm : toolbar activée == segfault !

Pour désactiver la toolbar, rajoutez ceci dans votre .emacs (au dessus des ajouts précédents) :

(tool-bar-mode nil)

Utilisation

Pour lancer une nouvelle connexion, faites M-x sqlplus-mode: l'écran sera coupé en deux, avec un buffer normal, plus un buffer contenant la sortie du SGBD.

Pour envoyer une requête SQL : C-RET (ou C-c C-e si vous êtes par ssh : 'C-RET ne fonctionnant apparemment pas dans ce cas...)

Si vous avez déjà un fichier .sqp, il faudra relancer la connexion à l'ouverture: M-x sqlplus-restart-connection : il vous ouvrira un nouveau buffer .sqp vide, vous pouvez le fermer, il ne sert à rien, et vous retrouverez votre vrai fichier .sqp. (Mais ils doit y avoir plus élégant en stockant les identifiants quelque part...)


Liens

Pour plus de détails, voir la page EmacsWiki de Sql Plus.