2012-11-11 43 views
0
bool isOpen = database.open(); 
    QSqlQuery query(database); 
    qDebug("is the database open %d",isOpen); 

    bool result = query.exec("SELECT * FROM scales"); 

該數據庫是在另一種方法啓動了一個全局變量:QSqlQuery失敗

database = QSqlDatabase::addDatabase("QSQLITE", "first"); 
database.setDatabaseName("database.db"); 
bool result = database.open(); 
在兩種情況下,數據庫是開放(返回true),但是當我運行查詢,則返回false

。我在終端中運行了相同的SQL,並且它可以工作,所以SQL不應該有任何問題。那麼爲什麼查詢不能執行?

打印我QSqlError的lastError後(1,「無法執行語句」,「沒有這樣的表:秤」)

它混淆了我,當我檢查命令行的分貝它確實存在,是拼寫正確。我能想到的唯一事情是它連接到不同的數據庫文件?

+1

什麼是錯誤? ('QSqlQuery :: lastError') – Mat

+0

你在哪裏創建'scales'表? – cmannett85

+1

如果未找到數據庫文件,則在open()中創建一個空文件。 – Leiaz

回答

0

問題解決了:我將項目和調試文件夾移動到了不同的路徑,並沒有將IDE指向新文件夾,因此它一直引用舊的調試文件夾。一旦我將它指向正確的路徑,它就可以正常工作。只有當我看到@redmode建議的路徑時才發現錯誤。乾杯所有GC