IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Discussion :

Connexion avec le pilote PostgreSQL 8.2


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 72
    Par défaut Connexion avec le pilote PostgreSQL 8.2
    Bonjour,

    Je débute avec Qt, et j'ai envie de l'utiliser conjointement avec postgresql 8.2 qui semble etre la version la plus récente du SGBD qui soit supportée par Qt.
    J'en ai eu la preuve dans les sources: (fichier qsql_psql.h)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ...
     
    class Q_EXPORT_SQLDRIVER_PSQL QPSQLDriver : public QSqlDriver
    {
        Q_OBJECT
    public:
        enum Protocol {
            Version6 = 6,
            Version7 = 7,
            Version71 = 8,
            Version73 = 9,
            Version74 = 10,
            Version8 = 11,
            Version81 = 12,
            Version82 = 13
        };
     
    ...
    Seulement, j'ai testé ici et là des bouts de code trouvé sur google, même ici sur developpez.com, mais avec la version 4.7 de Qt, je n'ai même pas réussi à les compiler.

    Voilà le code incriminé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #include "mainwindow.h"
    #include "ui_qtexquis.h"
    #include <QMessageBox>
    #include <QStringListModel>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QPSQLDriver>
    //#include "qtdir/src/sql/drivers/psql/qsql_psql.cpp"
     
    //-----------------------------------------------------------------------------
    //-----------------------------------------------------------------------------
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
     
    }
     
    //-----------------------------------------------------------------------------
    //-----------------------------------------------------------------------------
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    //-----------------------------------------------------------------------------
    //-----------------------------------------------------------------------------
    void MainWindow::on_pushButton_clicked()
    {
        // Bouton
     
     
     PGconn *con = PQconnectdb("host=localhost user=postgres password=postgres dbname=springfield");
     QPSQLDriver *drv =  new QPSQLDriver(con);
     QSqlDatabase db = QSqlDatabase::addDatabase(drv); // becomes the new default connection
     QSqlQuery query;
     query.exec("SELECT NAME, ID FROM STAFF");
    }
    Les messages d'erreur:

    ..\qtexquis1\mainwindow.cpp: In member function 'void MainWindow::on_pushButton_clicked()':

    ..\qtexquis1\mainwindow.cpp:33: error: 'PQconnectdb' was not declared in this scope

    ..\qtexquis1\mainwindow.cpp:36: error: aggregate 'QSqlQuery query' has incomplete type and cannot be defined
    Auriez-vous un bout de code à partir duquel je puisse me connecter à une base PostgreSQL 8.2.18, et que je puisse ainsi commencer à voler de mes propres ailes?

    Merci d'avance

    David

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Il me semble que ce plug-in ne doit pas s'utiliser de la sorte. En fait, tu dois compiler le plug-in pour PostgreSQL (le plus simple est de le demander à configure quand tu compiles Qt). Ensuite, dans ton application, tu demandes à QtSql de te connecter à une base de données Postgres. Appeler directement le plug-in, je n'ai jamais entendu parler de quelqu'un qui le faisait avec succès... QtSql est prévu pour que la base à laquelle se connecter soit déterminée à l'exécution, que ce soit du MySQL ou du Postgres ; tu n'es pas censé te préoccuper de ce genre de détails.

    Le guide de la programmation SQL avec Qt (en anglais)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 72
    Par défaut
    Merci pour ta réponse.
    J'ai tenté en vain de compiler le plug-in, et plutôt que de perdre mon temps, j'ai utilisé l'ODBC, qui fonctionne toujours, même si niveau perfs je ne suis pas persuadé que ça soit aussi bien qu'avec le plug-in.

    MErci encore

    David

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. connexion avec PostgreSQL
    Par chcheibani dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 28/07/2014, 17h21
  2. probléme de connexion avec postgresql
    Par selmagsi dans le forum Général Java
    Réponses: 2
    Dernier message: 09/05/2014, 17h21
  3. Echec de la connexion avec PostgreSQL
    Par daydream123 dans le forum QlikView
    Réponses: 7
    Dernier message: 26/04/2013, 21h53
  4. Un problème de connexion avec PostgreSQL
    Par edwithenwisdom dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/06/2011, 13h18
  5. Réponses: 1
    Dernier message: 25/06/2010, 08h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo