无法使用Qt连接到数据库

时间:2013-06-24 01:32:51

标签: qt sqlite qt4

我面临一个奇怪的问题。我正在创建连接到Sqlite数据库的Qt 4代码 使用:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("sb.sqlite");
bool db_ok = db.open();

当我从Qt Creator执行代码或直接从release文件夹执行代码时,我能够连接到数据库但是当我将release文件夹(包括数据库文件)复制到另一台机器时,我无法连接某种原因。

我还尝试使用数据库文件的完整路径:

db.setDatabaseName("C://release//sb.sqlite");

1 个答案:

答案 0 :(得分:2)

两件事:

首先:

在写出路径时,您需要使用转义反斜杠:\\或使用正斜杠:/

试图在Qt中逃避正斜杠,可能会给你带来麻烦。

第二

部署Qt App时,需要提供所有必需的Qt模块,以及您需要的Qt插件。

Qt插件只会导致缺少运行时功能,而丢失的Qt模块会导致加载时立即崩溃。

以下主题应解决您所看到的问题:

http://qt-project.org/forums/viewthread/21518

  

将sqlite4.dll放在可执行文件旁边的sqldrivers文件夹中

http://qt-project.org/doc/qt-4.8/qcoreapplication.html#libraryPaths

除了查看应该在控制台中弹出的运行时调试信息之外,您还可以在代码中添加这样的调用:

bool QSqlDatabase::isValid ()

同时查看有关db.open()的文档,您也可以致电QSqlError QSqlDatabase::lastError ()查看正在发生的事情。

希望有所帮助。