我试图从两个不同的applciations访问Windows移动设备上的Sql CE 2005数据库。
根据我在网上找到的信息,它应该可以工作但是当我打开第二个连接时,我收到文件共享违规错误
"There is a file sharing violation. A different process might be using the file. [ \\\Program Files\xx\DB.sdf ]"
关于我做错的任何想法?
答案 0 :(得分:3)
SQL Compact does support multiple connections to the database,even back with version 3.0。第一个进程如何打开数据库?例如,3.0和3.1的移动查询分析器确实独占地打开了数据库,有效地将其从任何其他进程锁定。
答案 1 :(得分:3)
问题是连接字符串.....
"Data Source=\\\Program Files\xx\DB.sdf"
显然以单个用户身份打开数据库
使用
"Data Source=Program Files\xx\DB.sdf"
正常打开数据库......
答案 2 :(得分:0)
同一进程是使用多个线程来访问此sdf文件,还是仅使用一个线程。当它说其他“PROCESS”正在访问文件时,它是什么?是VS还是别的什么。我认为您可以使用远程进程查看器来查看设备中的哪些进程正在使用此SDF文件。如果您可以单独看到哪个句柄适用于设备中的哪些进程,那就太棒了。即便如此,只需尝试删除桌面上的某些进程后删除sdf文件(或移动/重命名)。这可能会告诉你什么是违规的过程。
答案 3 :(得分:0)
SQLCE 4社区技术预览已经发布。它支持多用户场景以及来自同一进程的多个线程的访问。
它不会遇到与SQlCE 3.5相同的问题。适用于256个连接。
答案 4 :(得分:0)
参考:http://msdn.microsoft.com/en-us/library/ms171750.aspx
//在SQL Server Compact中,您可以运行多个同时访问或修改不同数据集的应用程序。
我认为很多人被误导的原因是因为sql ce支持多个连接,他们使用它来为senarios修改相同的数据集与多个连接,而sql server CE不支持。
希望这有帮助!