Travailler en C avec une base de données

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
67
Mois de parution
juillet 2013
Spécialité(s)


Résumé
En C aussi on peut travailler avec des bases de données, et contrairement à ce que l'on pourrait penser, ce n'est pas si compliqué : chaque système de gestion de base de données propose une API qui facilite la communication entre le programme et la base. Dans cet article, nous reprendrons notre sempiternel exemple consistant à afficher la liste des articles de la table Article stockée dans la base siteMarchand. Nous testerons trois API pour communiquer avec trois SGBD différents : PostgreSQL, MySQL, puis SQLite.

1. PostgreSQL

Pour accéder à une base de données PostgreSQL depuis un programme C, nous allons utiliser la bibliothèque libpq-fe. Cette bibliothèque peut être installée depuis un gestionnaire de paquetages. Pour les distributions basées sur Debian, il s'agit du paquet libpq-dev :

~$ sudo aptitude install libpq-dev

Ici, contrairement aux autres méthodes vues en Python et Java, le curseur n'est pas déclaré explicitement. Les autres étapes restent semblables :

01: #include <libpq-fe.h>
02: #include <stdlib.h>
03: 
04: int main(void)
05: {
06:  const char *conninfo;
07:  PGconn *connection;
08:  PGresult *result;
09:  int i, cpt;
10: 
11:  // Connexion
12:  conninfo = "hostaddr = '127.0.0.1' \
13:  port = '' \
14:  dbname = 'sitemarchand' \
15:  user='tristan' \
16:  password='motDePasse'";
17:  connection = PQconnectdb(conninfo);
18:  if (!connection)
19:  {
20:  fprintf(stderr, "La connexion est impossible.\n\n");
21:  exit(1);
22:  }
23:  if (PQstatus(connection) != CONNECTION_OK)
24:  {
25: ...

Cet article est réservé aux abonnés. Il vous reste 92% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous