我在我的一个项目中使用 SQL CE 3.5,前端是 WPF 应用程序,它处理给定的文件并将数据转储到 SQL CE 数据库。
目前应用程序和数据库在同一台机器上。
客户希望他应该能够从网络上的任何机器上运行应用程序,但数据库应该保留在服务器的共享位置。
用户将在应用程序中选择 SDF 文件的路径,然后当处理任何文件时,应用程序会将数据转储到数据库。
我的问题是,如果将 SDF 文件保存在网络共享位置并从任何机器访问它,那么它会正常工作还是会出现问题?
我在我的一个项目中使用 SQL CE 3.5,前端是 WPF 应用程序,它处理给定的文件并将数据转储到 SQL CE 数据库。
目前应用程序和数据库在同一台机器上。
客户希望他应该能够从网络上的任何机器上运行应用程序,但数据库应该保留在服务器的共享位置。
用户将在应用程序中选择 SDF 文件的路径,然后当处理任何文件时,应用程序会将数据转储到数据库。
我的问题是,如果将 SDF 文件保存在网络共享位置并从任何机器访问它,那么它会正常工作还是会出现问题?
实际上,这是不可能的 - SQL CE 不支持网络托管操作:与 sdf 文件(临时数据)相关的所有内容都记录到本地计算机,而不是网络源,因此服务器无法正确处理请求。
您可以使用类似于数据存储的 SQL Express Server,对于本地客户端,您唯一需要的是 Microsoft Synchronization library 2.1(它也适用于 SQL CE 4.0 SP1)
总结一下,创建 SQL CE 数据库,用表填充,索引它们,然后将其移植到 SQL Server express,将同步模块添加到您的应用程序(在单独的线程中),就是这样。
另一种解决方案是使用 MS Access DB,它允许这样的混乱,但它非常慢,更不用说不允许同时写入数据库了。