转换自' QSqlQuery *'到非标量类型' QSqlQuery'请求QT Creator

时间:2015-07-24 22:23:57

标签: c++ sql qt

嘿伙计们我试图填写QT创建者的TableView我试图使用这段代码,但我得到了一个奇怪的错误

从' QSqlQuery *'转换到非标量类型' QSqlQuery'请求的

void FillTable(){
MainWindow conn;//this is a variable type MainWindow
QSqlQueryModel * modal=new QSqlQueryModel();//Creating the Modal
conn.connOpen();//connOpen Method to Open the Connection
QSqlQuery sql=new QSqlQuery(conn.mydb);//MyDb MyDatabase declarted in connOpen
sql->prepare("Select * from particulier");
sql->exec();
modal->setQuery(sql);
ui->tableViewUi->setModel(modal);
conn.connClose();


}

connOpen

bool connOpen(){
        mydb = QSqlDatabase::addDatabase("QMYSQL");
        mydb.setHostName("Localhost");
        mydb.setDatabaseName("testnaltis");
        mydb.setUserName("root");
        mydb.setPassword("");
        mydb.open();
        //bool ok = db.open();
        if(mydb.isOpen()){
            qDebug()<<("Connexion Etablie");
            return true;
        }else{
            qDebug()<<("Erreur De connexion");
             return false;
        }

    }

1 个答案:

答案 0 :(得分:2)

QSqlQuery sql=new QSqlQuery(conn.mydb);

类型不匹配,应为

// C++11
auto sql=new QSqlQuery(conn.mydb);
// or
// C++98
QSqlQuery * sql = new QSqlQuery(conn.mydb);

此外,

modal->setQuery(sql);

应该是

modal->setQuery(*sql);

因为它需要一个对象,而不是一个指向对象的指针。