Qt QSQL数据库未打开
我无法理解我在这里做错了什么。我使用的是Qt 5.7.1,代码如下:Qt QSQL数据库未打开,qt,sqlite,qsqldatabase,Qt,Sqlite,Qsqldatabase,我无法理解我在这里做错了什么。我使用的是Qt 5.7.1,代码如下: QString filePath = QCoreApplication::applicationDirPath(); QString dbPath = QDir(filePath).absoluteFilePath("../../../Database"); m_db = QSqlDatabase::addDatabase("QSQLITE", "user_connection"); m_db
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();
}
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()可能点是dbpath,请尝试
m_db.setDatabaseName(dbPath.toLatin1() + "/Sensor_Objects.db");
使用调试器。在sqlite3\u open
、sqlite3\u open\u v2
等上设置断点。检查是否使用正确的参数调用它们。在Linux上,使用strace
和ltrace
也可能有帮助。顺便说一句,这个bug可能超出了您正在展示的内容。问题是..当我使用Qt5.6时,同样的代码工作得非常好。这可能是5.7驱动程序的问题吗?您确定您的程序没有-可能是在其他地方?并且您没有显示所有的源代码。请检查您是否确实在指定的路径上有Sensor_Objects.db。还要检查您是否有权读取和写入该路径和数据库。它已开始工作!我真的不知道如何…我没有改变直接处理数据库的代码中的任何内容。正如@BasileStarynkevitch所说,这个错误很可能来自其他地方。无论如何,谢谢你的帮助!