1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include <string.h>
#include <iostream.h>
#include </usr/local/pgsql/include/libpq++.h> /* remplacer par #include [chemin]/libpq++.h si VC++ ne
reconnaît pas le chemin de libpq++, revoire létape 6 du chapitre 7 */
int main() // Procedure principale, point dentrée au programme
{
/* 1 : Ouverture de la connexion avec la base de donnée */
/* Instanciation dune base de données */
PgDatabase data("dbname=mydb"); // nom de la base de données = testbase
// à remplacer par le nom dune base
// existante dans le SGBD PostgreSQL
/* Vérification du bon établissement de la connexion */
if ( data.ConnectionBad() )
{
// Echec de la connexion
cout << "Echec de le connexion, BD inexistante ou SGBD en panne..." << endl
<< " message derreur retourné : " << data.ErrorMessage() << endl;
return 1;
}
else
// Succès de la connexion
cout << "Connexion établie... saisir vos requêtes:" << endl;
/* 2: Obtention et traitement des requêtes */
// Exécution des requètes utilisateur en boucle et en intéractif
// Arrêt et terminaison du programme si lutilisateur ne saisisse rien avant
// de taper <ENTREE>
ExecStatusType etat; // état de lexécution
char * buffer; // buffer pour les commandes utilisateur
int fin = 0; // booléen qui vaut 1 pour terminer la boucle
while (!fin)
{
cout << "> "; // prompt
cout.flush();
getline(cin, buffer); // saisie de la requête utilisateur
if ( buffer != "" ) // test du buffer
// buffer non vide -> requête utilisateur à exécuter
if ( (etat = data.Exec( buffer.c_str() )) == PGRES_TUPLES_OK )
// test de letat de lexécution de la requête
data.DisplayTuples(); // affiche le résultat retourné
else
// requête retournant une erreur
cout << "Aucun tuples en retour..." << endl
<< "Etat: = " << status << endl
<< "Erreur retournée: " << data.ErrorMessage() << endl;
// affichage de lerreur
else
// pas de requête saisie -> fin de programme et sortie
fin = 1;
}
return 0;
} // Fin main() |
Partager