【问题标题】:Why aren't my SQLite queries executing in my Qt Application为什么我的 SQLite 查询没有在我的 Qt 应用程序中执行
【发布时间】:2014-04-04 08:31:48
【问题描述】:

我有一个使用 SQLite 作为数据库的 Qt 应用程序。在 Qt Creator 环境中,我的所有查询都执行得很好,一切都很好,但是当我在我的项目文件夹中运行可执行文件时,没有执行任何查询,并且我收到错误“无查询,无法获取行”。我的数据库是开放的,所以我不知道问题是什么。这是有原因的吗?

【问题讨论】:

  • 当你从它的位置运行你的应用程序时,也许你的 sqlite 插件没有加载?
  • 您是否尝试过硬编码数据库的绝对路径以进行测试? Qtcreator 可能使用与 shell 不同的工作目录。
  • 感谢绝对路径建议有效,但如果我希望应用程序在没有此类路径的另一台计算机上工作怎么办?有没有办法使路径相对?

标签: qt sqlite


【解决方案1】:

您应该将 SQLite 数据库文件放在可执行文件旁边。另外:

在 Windows 上:

  • 将 QtSql4.dll 放在可执行文件旁边
  • 将 qsqlite4.dll 放在您旁边的名为“sqldrivers”的文件夹中 可执行文件

这些 dll 文件位于您安装的 Qt 目录中的 bin 文件夹中。

在 Linux 上:

  • 将 libQtSql.so.4 与可执行文件放在一起
  • 将 libqsqlite.so 放在您旁边的名为“sqldrivers”的文件夹中 可执行文件

这些so文件在你安装的Qt目录中的lib文件夹或目录“/usr/lib/i386-linux-gnu”中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2015-09-03
    相关资源
    最近更新 更多