我想知道是否有办法将网络流视为文件。我可能错了,但我将文件视为字节数组列表。当你在Windows中打开一个文件并写入它时,你会将字节插入该文件(数组列表)。
我正在创建一个程序,我用SQLite数据库部署它。我也在创建客户端版本,它连接到网络上的数据库文件。
为了让用户连接到数据库文件,他们需要提供凭据才能访问该数据库中的数据。 我希望他们能够连接而无需输入该信息。
我一直在想的事情:
使用sql server部署我的应用程序。 (使用SQL服务器部署应用程序并不容易,它会静默安装服务器,启用tcp连接以及所有必要的配置来实现这一点。此外,安装sqlite需要不到20秒的时间大约需要7分钟!
我正在使用WCF与服务器通信,因此我可以为我计划使用的所有查询创建一个函数。因此,如果我想从产品中选择*,我可以在WCF服务上调用方法SelectAllFromProducts()...(这里我有点重新发明轮子。)另外,关于这个的好处是我的查询会很多我相信的更快。 Sqlite是无服务器的,所以如果你计划在产品中查找产品名称就像'foo'的所有项目,那么如果你考虑它,计算机将必须通过网络访问数据库中的所有记录。如果本地计算机执行此操作并将少量结果发送到客户端,则会更快。
答案 0 :(得分:1)
我认为通过网络使用Sqlite不是一个好主意。我目前正在使用Sqlite但作为本地文件系统数据库。
在客户端服务器架构中,您最好使用一些RDBMS而不是SQLite
客户端/服务器应用程序
如果您有许多客户端程序通过a访问公共数据库 在网络中,您应该考虑使用客户端/服务器数据库引擎 而不是SQLite。 SQLite将在网络文件系统上运行,但是 由于与大多数网络文件系统相关的延迟, 表现不会很好。另外,文件锁定逻辑很多 网络文件系统实现包含bug(在Unix和Unix上) 视窗)。如果文件锁定不起作用,它可能是 两个或多个客户端程序可以修改相同的部分 同一个数据库同时导致数据库损坏。 因为此问题是由底层文件系统中的错误引起的 实现时,SQLite无法阻止它。
请检查Appropriate use for Sqlite的此链接,然后跳转到
部分另一个RDBMS可以更好地工作的情况