Même si cela peut paraître bizarre (utiliser un outil non SIG pour mettre à jour une base SIG) il y a des occasions où cela s’avère très utile.
Une base SIG comporte deux types d’informations: l’information spatiale (géométrie) et l’information attributaire. Pour de nombreux projets, sur le terrain, on retrouve du personnel qui n’est pas formé au SIG mais qui a la charge de maintenir les informations, surtout attributaires, d’une base SIG.
Il est plus facile de mettre à leur disposition un outil tel que LibreOffice plutôt que de les former au SIG.Nous aborderons dans cet article la mise à jour à distance d’une base de données Postgresql/Postgis. Il est évident que les mises à jour ne concerneront que les données attributaires, la création des géométries restant réservée à l’utilisation d’un client SIG.
Nous allon utiliser comme client Postgres, LibreOffice Base, l’équivalent de Microsoft Access. LibreOffice Base permet la création de formulaires, utilisés comme interface de mise à jour d’une base de données.
Pour télécharger LibreOffice, suivez ce lien.
Pour plus de détails sur la création de formulaires avec LibreOffice, voici un lien vers la documentation correspondante.
Vous trouverez une abondante documentation et tutoriels sur l’utilisation des formulaires avec LibreOffice. Par contre il n’est pas facile de trouver comment se connecter à une base Postgresql avec LibreOffice. C’est ce point que nous aborderons ici.
Vous devez commencer par lancer LibreOffice Base
La première fois que l’on souhaite se connecter à notre base de données Postgresql, choisir Connecter une base de données existante et sélectionner PostgreSQL. La prochaine fois on pourra utiliser l’option Ouvrir un fichier de base de données existant.
La fenêtre Paramètres de connexion s’affiche.
C’est ici que l’on bute habituellement, car il n’y a pas de documentation claire sur la structure de l’URL à rentrer. De plus ce n’est pas une URL c’est au fait une chaîne de connexion :
dbname=nom de votre base hostaddr=adresse IP de la base port=5432 user=postgres password=votre mot de passe postgres
dbname doit correspondre exactement au nom de votre base de données qui apparaît dans la fenêtre pgAdminIII
hostadrr correspond à l’adresse IP du serveur Postresql. Si vous êtes en local, localhost correspond en principe à l’adresse 127.0.0.1.
port est le port d’écoute de Postgresql. Il apparaît à côté du nom du serveur. Si vous gardez la configuration par défaut il est 5432.
Le user et password doivent correspondre à un utilisateur défini dans la base Postgresql. Si vous voulez vous connecter en administrateur, c’est postgres et le mot de passe que vous avez défini lors de l’installation de Postgresql.
La fenêtre de paramétrage de l’utilisateur apparaît:
Profitez pour tester la connexion et vérifier ainsi que la chaîne de connexion entrée dans la fenêtre précédente fonctionne correctement.
Enregistrez le fichier de connexion, ainsi vous pourrez vous économiser toutes ces opérations aux prochaines connexions : vous sélectionnerez dans la première fenêtre Ouvrir un fichier de base de données existant et vous pointerez sur ce fichier.
Vous êtes à présent connecté à la base Postgres.
Vous pouvez naviguer dans les différents schémas, tables et vues de votre base.
Sur la fenêtre de gauche vous disposez des boutons Requêtes et Formulaires qui vous permettront de les créer.
Juste un conseil pour terminer. Quand vous allez créer un formulaire, la première fenêtre vous permet de choisir les champs à intégrer dans le formulaire.
Évitez de sélectionner le champ geom. L’ajouter au formulaire n’a pas de sens et l’utilisateur peut, par inadvertance,rendre son contenu inutilisable.
Bonjour, visiblement vous avez oublier de préciser le codage des données car l’utilisateur lit L?gume et non Légume. Comme pour la colonne geom il vaut mieux indiquer le bon charset si l’on ne veut pas risquer de casser la base.
Et pourtant les accents sont constitutifs de l’orthographe française.
Si les retraités augmentent, les retraites baissent.
(à lire sans accents)
Bonjour
Pour l’exemple, vous avez tout à fait raison. En ce qui concerne la géométrie, étant donné qu’on ne cherche pas à la mettre à jour, il suffit de ne pas afficher le champ. Mais pour l’encodage des données (L?gumes), ce n’est pas à ce stade que le problème doit être résolu. Au fait, l’exemple vient d’un vrai projet d’un collègue et le problème doit être résolu au moment du chargement des données dans la base postgres (différence de charset entre la définition de la base et du shapefile à charger).
Pour les articles j’essaye de ne pas polluer le sujet inutilement, mais il faudra que je fasse un effort pour trouver des exemples qui ne les amènent pas involontairement!
Merci
Oui, vos articles sont simples et lisibles, c’est bien !
Bonjour,
Je souhaite créer des formulaires d’affichage/saisie des données d’une base PostgreSQL hébergée sur alwaysdata sans avoir à créer des tableaux HTML/CSS/PHP.
L’utilisation de PhpPgAdmin est trop complexe pour les utilisateurs et insuffisamment conviviale.
Les formulaires créés à partir de libreoffice peuvent-ils être insérés dans un script PHP de sorte que l’utilisateur consulte les données ou mette à jour la base à partir du WEB ?
Je ne l’ai jamais fait, mais je pense que c’est tout à fait possible.