【问题标题】:Sql ce 3.0 Database multiuserSql ce 3.0 数据库多用户
【发布时间】:2010-10-30 15:18:46
【问题描述】:

我试图从两个不同的应用程序访问 Windows 移动设备上的 Sql CE 2005 数据库。

根据我在网上找到的信息,它应该可以工作,但是当我打开第二个连接时,我得到一个文件共享冲突错误

"There is a file sharing violation. A different process might be using the file. [ \\\Program Files\xx\DB.sdf ]"

关于我做错了什么有什么想法吗?

【问题讨论】:

标签: c# windows-mobile sql-server-ce


【解决方案1】:

是同一进程使用多个线程访问此 sdf 文件,还是仅使用一个线程。当它说其他一些“过程”正在访问该文件时,它是什么?是VS,还是别的什么。我认为您可以使用远程进程查看器来查看设备中的哪些进程正在使用此 SDF 文件。如果您可以分别看到哪些句柄用于设备中的哪些进程,那就太好了。即便如此,在杀死桌面上的一些进程后,尝试删除 sdf 文件(或移动/重命名它)。这可能会告诉你什么是违规过程。

【讨论】:

  • 不,它们是两个独立的应用程序。两者都试图打开同一个数据库。一个打开连接,当第二个尝试打开它时,它给出了文件共享冲突错误。我使用此连接字符串进行连接。 conn = new SqlCeConnection("数据源=\\\Program Files\xx\DB.sdf");
【解决方案2】:

SQL Compact does support multiple connections to the databaseeven back with version 3.0。第一个进程如何打开数据库?例如,3.0 和 3.1 的移动查询分析器确实以独占方式打开数据库,有效地将其与任何其他进程锁定。

【讨论】:

  • 两个应用程序使用相同的连接字符串 SqlCeConnection conn = new SqlCeConnection("Data Source=\\\Program Files\xx\DB.sdf"); conn.Open();第一个打开数据库而没有问题的应用程序。第二个抛出错误。
  • 我可以告诉你,在某些情况下,SQL CE 支持多个连接并不重要。您仍然可以获得共享冲突错误。例如,在桌面上,如果 SDF 文件位于用户的本地计算机上,则可以对其进行多个进程/连接。将该 SDF 文件放在网络共享上,情况就不同了。一次只有 1 个进程可以访问它。我想知道在移动设备上打开时是否会出现同样的情况。
  • 有据可查的是它不能在网络共享上工作 (pluralsight.com/community/blogs/jimw/archive/2007/02/19/…)。它在设备上运行良好 - 我有一些解决方案需要使用同一个数据库文件的多个进程。
  • 所以我做错了什么。我需要在连接字符串中设置一些额外的参数吗?
【解决方案3】:

问题是连接字符串.....

"Data Source=\\\Program Files\xx\DB.sdf" 显然是以单个用户身份打开数据库

使用

"Data Source=Program Files\xx\DB.sdf"正常打开数据库...

【讨论】:

    【解决方案4】:

    SQLCE 4 社区技术预览版已发布。它支持多用户场景和来自同一进程的多个线程的访问。

    它不会遇到与 SQlCE 3.5 相同的问题。在 256 个连接上运行良好。

    【讨论】:

      【解决方案5】:

      参考:http://msdn.microsoft.com/en-us/library/ms171750.aspx

      //在 SQL Server Compact 中,您可以同时运行多个访问或修改不同数据集的应用程序。

      我认为很多人被误导的原因是因为 sql ce 支持多个连接,他们使用它来修改 同一组数据 具有 sql server CE 不支持的多个连接。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多