Bonjour,

Je vous propose un nouvel élément à utiliser : Exemple d'utilisation de la bibliothèque libpq

Ce code source a pour but de montrer comment utiliser le langage C et la bibliothèque libpq pour se connecter à une base de donneés PostgreSQL sur un système GNU/Linux.



Le seul fichier d'en-tête nécessaire pour compiler notre programme est le fichier : libpq-fe.h. Bien sûr, pour avoir ce fichier il faut installer la bibliothèque libpq(et non pq++) . Deux méthodes pour installer la bibliothèque :

Installer le RPM ou le DEB de la bibliothèque à la'aide d'un package manager.

Installer PostgreSQL à partir de la source (http://www.postgresql.org/docs/8.4/s...tallation.html) : Ainsi, la bibliothèque sera installée par défaut !!

On va utiliser la deuxième méthode. Le serveur sera installé dans le répertoire : /usr/local/pgsql.

Il faut ensuite installer la bibliothèque partagée libpq.so.5. Elle sera utilisée par l'éditeur de liens (ld) pour construire l'exécutable. Pour cela, vous devez installer le package postgresql-libs. Sur Fedora : yum install PostgreSQL-libs



I. Changer la méthode d'authentification

Par défaut, la méthode d'authentification du serveur est 'trust'. Vous devez le changer en 'password. Pour le changer, procédez comme suit :

Ouvrir un terminal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
cd un_dir_propre_à_postgres
 
su postgres
 
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data >logfile 2>&1 & -- lancer le serveur en background
 
/usr/local/pgsql/bin/psql -- psql is a terminal-based front-end to PostgreSQL
 
ALTER USER postgres WITH PASSWORD 'admin'; -- assigner un password ('admin') au superuser (postgres)
tapez \q.

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop -- fermer le serveur
Maintenant, ouvrir en tant-que root le fichier /data/pg_hba.conf et remplacez les mots 'trust' par 'password' .

II. Créer la base des données :

Le programme va se connecter à la base de donnée store. Vous devez le créer ! Suivez les étapes suivantes pour le créer rapidement :

su postgres

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ start >logfile 2>&1 &
 
/usr/local/pgsql/bin/psql
 
CREATE USER client1 PASSWORD 'client1'; -- créer un user (role + login) avec le password 'client1'
 
\q
 
/usr/local/pgsql/bin/createdb -T template0 store -- créer une db 'store' à partir du template 'template0'
 
/usr/local/pgsql/bin/psql store < dbstore.txt -- restorer la db 'store' à partir du SQL dump 'dbstore.txt'.
 
/usr/local/pgsql/bin/psql -U client1 store
Vous pouvez maintenant compiler et exécuter le programme. La base de données store est donnée juste pour tester le programme.

Qu'en pensez-vous ?