2013-06-11 3 views
0

J'ai un bouton sur mon qui. Et quand je l'ai cliqué, il faut connecter la base de données en fonction des infos de connexion.erreur de connexion postgresql avec qt créateur dans Windows

voici mon code:

void MainWindow::on_pushButton_clicked(){ 
    db = QSqlDatabase::addDatabase("QPSQL"); 
    db.setHostName("localhost"); 
    db.setDatabaseName("Assignment3"); 
    db.setUserName("postgres"); 
    db.setPassword("password"); 
    db.setPort(5432); 

    bool ok = db.open(); 
    if(ok != true) 
    { 
     QMessageBox::information(this,"Connection","Connection Failed!") ; 
    } 
    else 
    { 
     QMessageBox::information(this,"Connection","Connection OK!") ; 

     QSqlQueryModel model; 
     model.setQuery("select * from students "); 

     //ui->tableView->setModel(&model); 
     QMessageBox::information(this,"Information","This Message box is needed in  order to see the rendered tableview!") ; 

    } 

}

nom d'hôte

, databasename, nom d'utilisateur, mot de passe et le port sont corrects et ma base de données postgresql est active avec tables contient pas en elle.

Toute aide est appréciée. Merci d'avance.

+0

Et que dit la boîte de message? –

+0

"Échec de la connexion". Le problème est que ne pas avoir le pilote qpsql pour qt. – arkadian

+0

Avez-vous 'win32: LIBS + = libpqdll.lib' dans votre fichier .pro? Avez-vous Qt construit avec le support de postgresql? –

Répondre

0

S'il vous manque le pilote (comme le suggèrent les commentaires), vous devriez chercher à l'obtenir.

Sur Debian, par exemple, vous:

apt-get install libqt4-sql-psql 

Sur Fedora vous utilisez une commande similaire yum

Cependant sans connaître votre plate-forme, je ne peux pas proposer des mesures spécifiques.