是否可以在PC的共享文件夹中使用SQLite数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在PC的共享文件夹中使用SQLite数据库?相关的知识,希望对你有一定的参考价值。

我正在开发一个UWP应用程序(Windows phone 10),我在局域网的PC中的共享文件夹中有一个SQLite数据库。我想知道我是否可以在Windows Phone应用程序中使用此数据库,就像我使用我的WPF应用程序一样,我可以设置数据库的路径,我可以在我的局域网中的任何计算机上使用它。

谢谢。

答案

简短回答: 是的,但是您可能需要注意所选的日记模式,例如WAL无法在网络文件系统上运行。

答案很长: 如果您发现自己处于许多客户端/程序需要通过网络访问公共数据库的情况下,您应该考虑客户端/服务器数据库或提供某种类型的API,以便将客户端的数据依次保存到SQLite DB。

有关更多信息,请参阅Appropriate Uses of SQLite

另一答案

我记得很多,开发人员不建议这样做,因为文件锁定在这种设置中非常有限(使用网络文件系统)。

来自FAQ

如果多个进程可能同时尝试访问该文件,则应避免将SQLite数据库文件放在NFS上。在Windows上,Microsoft的文档说如果您没有运行Share.exe守护程序,则在FAT文件系统下锁定可能不起作用。对Windows有很多经验的人告诉我,网络文件的文件锁定是非常错误的,并且不可靠。如果他们说的是真的,在两台或多台Windows机器之间共享SQLite数据库可能会导致意外问题。

但是,如果您打算一次只使用一个进程(不涉及并发),那么应该没问题。

另一答案

您不能随意从UWP应用程序中打开文件,您需要使用RuntimeBroker来处理它,并且可以与RuntimeBroker通信的唯一机制是StorageFile API,而后者又不知道LAN环境中的共享文件夹。

要访问共享数据库(SQLite或其他),最好的选择是在某种形式的服务器上托管它,并构建一个API来与它连接(无论是SOAP,REST等)。您仍然可以在每个客户端上使用本地缓存来断开连接,但您需要自己处理复制。

另一答案

真实路径:

\192.168.1.102DatabaseMyDB.db3

使用此连接字符串:

Data Source='//192.168.1.102/Database/MyDB.db3';Version=3
  • Windows中的cnStr.Replace(“”,“/”)

以上是关于是否可以在PC的共享文件夹中使用SQLite数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 的共享文件夹中隐藏 sqlite 文件

Cordova - 对 Win10 中的共享文件夹进行读/写访问

Linux:链接共享库时如何使用 .pc 文件?

Android数据存储引擎---SQLite数据库

Firebase 或 SQLite [关闭]

SQLite 数据库可以跨 Windows 服务和用户应用程序共享吗?