2015-07-24 2 views
-3

Эй, ребята, им пытается заполнить TableView на Qt Creator я пытался использовать этот код, но я получил странную ошибкупреобразования из «QSqlQuery *» для нескалярного типа «QSqlQuery» запрошенного Qt Creator

преобразование из ' 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; 
     } 

    } 

ответ

2
QSqlQuery sql=new QSqlQuery(conn.mydb); 

имеет mismatchin г типа и должно быть

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

Кроме того,

modal->setQuery(sql); 

должно быть

modal->setQuery(*sql); 

, так как он ожидает, что объект, не указатель на объект.

+0

Что об этом 'ui' не был объявлен в этой области ui-> tableViewUi-> ​​setModel (modal); ^ – Samer

+0

@Samer Извините, мы не можем отлаживать код, который мы не можем видеть. –

Смежные вопросы