我开发了一个使用SQLIte数据库的应用程序获胜QT。数据库副本位于每个站点上。
在一个网站上,让我们说网站'BOB1'它完美无缺地运行。但是当我们尝试在另一个站点上使用它时,可以说“BOB2”,打开数据库连接需要很长时间(大约2000毫秒)。
我认为可能存在网络问题,所以他们尝试使用网站'BOB1'的服务器作为他们的服务器,这很好。但是当我试图从网站'BOB1'使用网站'BOB2'的服务器时,我遇到了同样的问题。所以我认为这可能不是网络问题。
我想到的另一件事是,也许存在DNS解析的问题。但是当我尝试使用IP和主机名ping服务器时,响应时间是相同的。
任何可能出现问题的想法或指针。
PS:使用环境变量在setDatabasePath()函数中指定服务器+数据库文件路径。
答案 0 :(得分:0)
考虑将数据库复制到本地计算机(例如临时文件夹,如果是临时文件夹,则为其他合适位置)。您可以安全地使用文件副本,或考虑使用qt备份API以确保传输成功(并且您可以选择进度反馈)
https://sqlite.org/backup.html
你甚至可以"备份"如果文件很小并且你说你只是在阅读,那么从远程服务器到内存的文件是什么?
您可以看到有关如何将sqlite DB导入Qt QSqlDatabase的示例代码here。请注意,执行此操作时,您需要确保您使用的sqlite本机API的版本与编译到Qt中的版本相同,否则您可能会收到来自sqlite或Qt的错误消息。