C++ et PostgreSQL : guide complet pour développeurs

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

C++ et PostgreSQL : comment allier programmation système et bases de données relationnelles

\n\n

Avez-vous déjà réfléchi à pourquoi de nombreux systèmes à forte charge – des serveurs de jeux aux plateformes financières – choisissent la combinaison C++ et PostgreSQL ? La réponse est simple : C++ offre une rapidité fulgurante et un contrôle de la mémoire, tandis que PostgreSQL apporte fiabilité et puissantes capacités SQL. Ce n'est pas juste « un tutoriel de plus ». C'est un guide pratique qui vous mènera de l'installation du pilote à l'écriture d'une application CRUD complète en C++ avec PostgreSQL.

\n\n

Dans cet article, vous apprendrez :

\n
    \n
  • Comment installer et configurer libpq – le client officiel PostgreSQL pour C++.
  • \n
  • Comment exécuter des requêtes SELECT, INSERT, UPDATE et DELETE.
  • \n
  • Comment gérer les erreurs et travailler avec les transactions.
  • \n
  • Des exemples de code réel que vous pouvez utiliser immédiatement dans vos projets.
  • \n
\n\n

Prêt ? C'est parti !

\n\n

Étape 1. Installation de libpq et préparation de l'environnement

\n\n

Avant d'écrire du code, vous devez installer la bibliothèque libpq. Elle fait partie du client PostgreSQL. Si PostgreSQL est déjà installé, libpq est déjà présente. Sinon, installez-la séparément.

\n\n

Linux (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install libpq-dev postgresql-server-dev-all
\n\n

macOS (Homebrew)

\n
brew install postgresql
\n\n

Windows

\n

Téléchargez l'installateur depuis le site officiel de PostgreSQL et lors de l'installation, sélectionnez le composant « Development Libraries ».

\n\n

Après l'installation, vérifiez que le compilateur g++ peut trouver la bibliothèque. Pour cela, lors de la compilation, vous devrez spécifier les flags -lpq (liaison avec libpq) et éventuellement -I/chemin/vers/include.

\n\n

Étape 2. Connexion à la base de données en C++

\n\n

Commençons par l'essentiel – établir la connexion. Pour cela, on utilise la structure PGconn et la fonction PQconnectdb().

\n\n

Exemple : connexion simple

\n
#include <iostream>\n#include <libpq-fe.h>\n\nint main() {\n    // Paramètres de connexion\n    const char* conninfo = "host=localhost port=5432 dbname=mydb user=myuser password=mypass";\n\n    // Établir la connexion\n    PGconn* conn = PQconnectdb(conninfo);\n\n    // Vérifier le statut\n    if (PQstatus(conn) != CONNECTION_OK) {\n        std::cerr << "Erreur de connexion : " << PQerrorMessage(conn) << std::endl;\n        PQfinish(conn);\n        return 1;\n    }\n\n    std::cout << "Connexion à PostgreSQL réussie !" << std::endl;\n\n    // Fermer la connexion\n    PQfinish(conn);\n    return 0;\n}
\n\n

Important : ne codez jamais en dur les mots de passe. Utilisez des variables d'environnement ou des fichiers de configuration. L'exemple ci-dessus est donné à titre indicatif.

\n\n

Compilons :

\n
g++ -o connect connect.cpp -lpq
\n\n

Étape 3. Exécution de requêtes SQL : SELECT, INSERT, UPDATE, DELETE

\n\n

Maintenant que la connexion est établie, apprenons à exécuter des requêtes. Pour cela, on utilise la fonction PQexec(), qui retourne un résultat sous forme de structure PGresult.

\n\n

Exemple : exécution d'un SELECT

\n
PGresult* res = PQexec(conn, "SELECT id, name, age FROM users");\n\nif (PQresultStatus(res) != PGRES_TUPLES_OK) {\n    std::cerr << "Erreur de requête : " << PQerrorMessage(conn) << std::endl;\n    PQclear(res);\n    PQfinish(conn);\n    return 1;\n}\n\n// Obtenir le nombre de lignes et de colonnes\nint rows = PQntuples(res);\nint cols = PQnfields(res);\n\n// Afficher les en-têtes de colonnes\nfor (int i = 0; i < cols; ++i) {\n    std::cout << PQfname(res, i) << "\\t";\n}\nstd::cout << std::endl;\n\n// Afficher les données\nfor (int i = 0; i < rows; ++i) {\n    for (int j = 0; j < cols; ++j) {\n        std::cout << PQgetval                

Blogs

Book Recommendations