在QT4.7中使用sqlite的问题

时间:2011-01-06 03:26:53

标签: sql qt sqlite qt4 qt-creator

我使用sqlite编写了一个程序但是当我运行它时似乎没有sqlite支持

以下是QT创建者提供的信息: QSqlDatabase:未加载QSQLITE驱动程序 QSqlDatabase:可用的驱动程序:

没有可用的驱动程序!但是在C:\ Qt \ 2010.05 \ qt \ plugins \ sqldrivers目录中有sqlite4.dll,sqlodbc4.dll,为什么程序无法检测到驱动程序在哪里?我应该使用-qt-sql-sqlite选项重新编译Qt4.7吗?这似乎是最后一个非常耗时的决议。有什么建议?提前谢谢。

4 个答案:

答案 0 :(得分:2)

如果您没有在启用sql的情况下编译qt,那么sql将无效。我建议你这样做,即使这可能是耗时的。如果你需要它,这是最好的方法。

答案 1 :(得分:2)

您需要将qsqlite4.dll文件放在sqldrivers文件夹

答案 2 :(得分:1)

你在建立什么模式 - 调试或发布?如果你在调试模式下构建,那么你需要调试版本的SQLite插件,名为sqlite * d * 4.d​​ll而不是sqlite4.dll。
您可以通过设置环境变量QT_DEBUG_PLUGINS=1来启用一些有用的调试信息。如果你这样做,你会得到这样的东西

QFactoryLoader::QFactoryLoader() looking at "C:/Qt/4.7.0-mingw/plugins/sqldrivers/qsqlite4.dll"
In C:/Qt/4.7.0-mingw/plugins/sqldrivers/qsqlite4.dll:
  Plugin uses incompatible Qt library
  expected build key "Windows mingw debug full-config", got "Windows mingw release full-config"

你知道你需要调试版本的插件。

此外,如果在原始插件文件夹(您在问题中提供的插件)中找到插件时遇到问题,您可以在应用程序的文件夹中创建sqldrivers文件夹并复制sqlite*.dll个插件那里。

答案 3 :(得分:1)

这可能就像忘记在开场调用中指定驱动程序一样简单:

QSqlDatabase::addDatabase("QSQLITE")