Qt - 共享同一数据库的应用程序
Posted
技术标签:
【中文标题】Qt - 共享同一数据库的应用程序【英文标题】:Qt - Applications sharing the same database 【发布时间】:2018-06-22 19:36:53 【问题描述】:我有一个应用程序使用:
QString databasePath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
databasePath += "/MyApp.db";
qApp->setProperty("MYAPP_DATABASE_PATH", databasePath);
为数据库创建路径
有没有办法让另一个应用程序使用相同的路径来访问相同的数据库?
【问题讨论】:
你可以写出隐藏的 temp.xml 文件的完整路径 【参考方案1】:来自 SQlite 常见问题解答:
SQLite 使用读/写锁来控制对数据库的访问。 (在不支持读/写锁的 Win95/98/ME 下,改为使用概率模拟。)但请注意:如果数据库文件保存在 NFS 文件系统上,此锁定机制可能无法正常工作。这是因为 fcntl() 文件锁定在许多 NFS 实现中被破坏。如果多个进程可能尝试同时访问该文件,则应避免将 SQLite 数据库文件放在 NFS 上。在 Windows 上,Microsoft 的文档说如果您没有运行 Share.exe 守护程序,锁定可能无法在 FAT 文件系统下工作。对 Windows 有很多经验的人告诉我,网络文件的文件锁定非常有问题,而且不可靠。如果他们说的是真的,那么在两台或多台 Windows 机器之间共享 SQLite 数据库可能会导致意想不到的问题。
【讨论】:
以上是关于Qt - 共享同一数据库的应用程序的主要内容,如果未能解决你的问题,请参考以下文章