OpenOffice et bases de données
Ca faisait longtemps que je cherchais l'équivalent de MS
Access en libre. Je savais qu'il y avait quelque chose avec StarOffice.
Maintenant je l'ai testé avec Open Office 1.1 .
Un bon point de départ est : dba
Généralités
Les réglages globaux se passent dans Outils/sources de
données.
La base livrée avec OO
Elle s'appelle dBase et a moins de fonctionalités que MySQL.
Carnets d'adresses Mozilla
Accessible en lecture seulement.
OO avec MySQL + JDBC
Initialisations
Voir explications détaillées ici : Database Specific
Problems. Comme j'avais déjà Java installé,
j'ai choisi la solution JDBC.
Voici ce que j'ai dans la fenêtre Outils / "sources de
données" / onglet JDBC :
Classe du pilote JDBC: com.mysql.jdbc.Driver
URL: jdbc:mysql://localhost/ooffice
Avec le client mysql en ligne de commande, j'ai crée une base
ooffice et un utilisateur du même nom avec tous les droits
sur les tables de cette base :
CREATE database ooffice;
GRANT CREATE, SELECT, INSERT, UPDATE, DROP, DELETE
ON ooffice.* TO ooffice@127.0.0.1
IDENTIFIED BY 'mon-mot-de-passe';
On peut alors créer des tables dans OpenOffice à la facon
MS Access. Mais on n'a pas toutes les facilités. En particulier
AUTO_INCREMENT ne semble pas disponible. Je crée donc mes tables
en SQL :
use ooffice;
create table jmv_contact (nom varchar(50), telephone varchar(14),
id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) );
Notez bien que, pour qu'une table soit accessible en écriture
dans OpenOffice, il faut une clé primaire.
Voici comment créer une table "reunion" dont le champ
"organisateur" est une référence vers le champ "id" de la
table "jmv_contact" :
create table reunion ( date DATE, lieu varchar(50),
organisateur INT, id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id), FOREIGN KEY(organisateur) REFERENCES jmv_contact(id) );
Utilisation
Manuel ici : http://www.unixodbc.org/doc/OOoMySQL9.pdf
On peut alors faire apparaitre la sous-fenêtre qui est
l'équivalent de Access en cliquant sur Affichage / "sources de
données". Dans le menu déroulant on déplie une
source de données et on a "tables" et "requêtes".
Là je dois dire que je suis déçu. On a
l'impression que les développeurs de StarOffice ont
essayé de reproduire jusqu'aux défauts de Access, comme
le fait que le code SQL n'est pas conservé par l'interface
graphique.