0
我無法理解我在這裏做錯了什麼。我使用Qt 5.7.1,代碼如下:QSqlDatabase不能打開
QString filePath = QCoreApplication::applicationDirPath();
QString dbPath = QDir(filePath).absoluteFilePath("../../../Database");
m_db = QSqlDatabase::addDatabase("QSQLITE", "user_connection");
m_db.setDatabaseName(dbPath + "/Sensor_Objects.db");
qDebug() << filePath << " & " << dbPath;
if (!m_db.open())
qDebug() << "Database Error: " + m_db.lastError().text();
else
{
qDebug() << "Database: connection ok";
createDatabase("Sensor_Objects");
m_db.close();
}
qDebug()正確,但m_db.open()打印路徑的目錄失敗,錯誤「數據庫錯誤:內存不足打開數據庫時出錯「。
使用調試器。在'sqlite3_open','sqlite3_open_v2'等設置一個斷點。檢查它們是否被調用了正確的參數。在Linux上,使用'strace'&'ltrace'也可能有幫助。順便說一句,這個錯誤可能會超出你所顯示的行數。 –
事情是......當我使用Qt 5.6時,相同的代碼完美工作。這可能是5.7驅動程序的問題嗎? – user2522981
你確定你的程序沒有[未定義的行爲](https://en.wikipedia.org/wiki/Undefined_behavior) - 也許是別的什麼地方?而且你不顯示你所有的源代碼。 –