QSQLDatabase(使用SQLite)需要很长时间才能打开数据库

时间:2014-10-01 11:58:30

标签: qt sqlite qsqldatabase

我开发了一个使用SQLIte数据库的应用程序获胜QT。数据库副本位于每个站点上。

在一个网站上,让我们说网站'BOB1'它完美无缺地运行。但是当我们尝试在另一个站点上使用它时,可以说“BOB2”,打开数据库连接需要很长时间(大约2000毫秒)。

我认为可能存在网络问题,所以他们尝试使用网站'BOB1'的服务器作为他们的服务器,这很好。但是当我试图从网站'BOB1'使用网站'BOB2'的服务器时,我遇到了同样的问题。所以我认为这可能不是网络问题。

我想到的另一件事是,也许存在DNS解析的问题。但是当我尝试使用IP和主机名ping服务器时,响应时间是相同的。

任何可能出现问题的想法或指针。

PS:使用环境变量在setDatabasePath()函数中指定服务器+数据库文件路径。

1 个答案:

答案 0 :(得分:0)

考虑将数据库复制到本地计算机(例如临时文件夹,如果是临时文件夹,则为其他合适位置)。您可以安全地使用文件副本,或考虑使用qt备份API以确保传输成功(并且您可以选择进度反馈)

https://sqlite.org/backup.html

你甚至可以"备份"如果文件很小并且你说你只是在阅读,那么从远程服务器到内存的文件是什么?

您可以看到有关如何将sqlite DB导入Qt QSqlDatabase的示例代码here。请注意,执行此操作时,您需要确保您使用的sqlite本机API的版本与编译到Qt中的版本相同,否则您可能会收到来自sqlite或Qt的错误消息。