Comment creer un carnet d'adresse sur une base de donnée PostgreSQL ?


L'intéret est de pouvoir partager un carnet d'adresse en réseau avec des utilisateurs (Windows et Linux).
Je décrierais ici la manipulation à faire sous Linux, celle sous Windows étant identique ormis la partie installation ODBC.

ODBC

il vous faut le package unixodbc.
Sous Debian un simple :

apt-get install unixodbc
et
apt-get install unixodbc-bin

pour RedHat ou Mandrake les rpm doivent etre trouvables sur http://rpmfind.net

enuite il faut lancer les outils de configuration du driver odbc en root :

ODBCConfig

cet outil graphique va générer les fichier odbc.ini et odbcint.ini

/etc/odbc.ini exemple :


[carnet]
Description = PostgreSQL
Driver = PostgreSQL
Trace = No
TraceFile =
Database = carnet
Servername = 192.168.2.49
UserName = postgres
Password = postgresql
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

UserName et Password correspondent aux acces à la base de donnée.
Remarquez le protocole en version 6.4, ce qui ne pose pas de problemes en version 7.0.3 de PostgreSQL


/etc/odbcint.ini :

[PostgreSQL]
Description =
Driver = /usr/lib/libodbcpsql.so.1
Setup = /usr/lib/libodbcpsqlS.so.1
FileUsage = 1


Ce dernier fichier comporte une entrée par driver odbc. Il y a un driver par base de donnée.
Enfin vous pouvez tester votre acces avec DataManager. entrez votre login et pass base de donnée.

StarOffice

Fichier / Nouveau / Base de donnée

Choisissez un nom à cet acces SGBD.
Dans l'onglet type choisissez ODBC ensuite parcourir. Vous devez voir le driver ODBC que vous venez de creer.
Sur l'onglet ODBC entrez le nom et le pass de votre base de donnée, les memes que ceux dans odbc.ini
Si tout est ok, en cliquant sur table, vous devez voir les tables correspondantes à votre base.

Allez dans l'explorer. Vous voyez un icone base de donnée avec le nom que vous avez choisi. En le dépliant vous avez les tables conncernant cette base.
Attention toutes actions de modif, insertion, supression de tables ou enregistrement sera validé dans la base si vous avez mis 'ReadOnly = No' dans odbc.ini.

Vous avez un superbe acces base avec les outils de gestion graphique de StarOffice.

Maintenant nous voulons créer un carnet d'adresse accessible communément dans l'environnement graphique. Il faut savoir qu'il faut respecter une structure de table. Cette structure est bien sur celle du carnet lié à Adabas.
Un simple glisser/déplacer depuis la table 'adress' du Carnet d'adresse vers notre nouvelle base créera celle-ci.

Attention une fenetre vous propose de creer un identifiant unique. Acceptez mais en renommant celui-ci ('IDSEQ' par exemple). Effectivement il existe deja dans une colonne ID. Gardez la structure proposée avec les meme nom. Vous pouvez changer le nom de la table.

Vous pouvez acceder à cette table, mais oh bizarre vous pouvez pas la modifier (avec PostgreSQL en tout cas). En fait il faut creer une séquence sur l'identifiant unique. Cette séquence incrémantera automatiquement l'ID. Les petits malins qui pensaient squizzer le probleme en ne créant pas d'ID unique ont tout faux. Vous ne pourrez pas modifier votre table sans ID unique .

Je vous renvois sur phpPgAdmin (interface web) ou bien psql (interface console) pour creer cette séquence et modifier la valeur par defaut de l'IDSEQ.

exemple :


Field | Type | Length | Not Null | Default
IDSEQ | int4 | 4 | Yes | nextval('carnet_idseq_seq'::text)

sequence :

name | last | increment | max | min | cache | is_cycled | is_called
idseq_seq | 10 | 1 | 2147 | 1 | 1 | f | t


Voila, plus qu' un clic droit sur cette nouvelle table puis cochez 'Carnet d'adresse' .

Auteur : Frederic Logier

Date : 08/01/2001

© Guy Capra, ALOMPHEGA