Ms access Microsoft Jet的64位替代方案

Ms access Microsoft Jet的64位替代方案,ms-access,64-bit,Ms Access,64 Bit,微软选择不发布64位版本的Jet,这是他们用于Access的数据库驱动程序。有人知道一个好的选择吗 以下是Jet支持的我需要的特定功能: 多个用户可以通过网络连接到数据库 用户可以使用Windows资源管理器在数据库打开时复制数据库,而不会有损坏的风险。Access目前以足够的可靠性满足客户的需求 在C++中运行良好,不需要.NET./LI> 我认为不可行的备选方案(尽管我的理解可能不正确): SQLite:如果多个用户通过网络连接到数据库,它将被损坏 Firebird:复制正在使用的数据

微软选择不发布64位版本的Jet,这是他们用于Access的数据库驱动程序。有人知道一个好的选择吗

以下是Jet支持的我需要的特定功能:

  • 多个用户可以通过网络连接到数据库
  • 用户可以使用Windows资源管理器在数据库打开时复制数据库,而不会有损坏的风险。Access目前以足够的可靠性满足客户的需求
  • 在C++中运行良好,不需要.NET./LI>
我认为不可行的备选方案(尽管我的理解可能不正确):

  • SQLite:如果多个用户通过网络连接到数据库,它将被损坏
  • Firebird:复制正在使用的数据库可能会损坏原始数据库
  • SQL Server:正在使用的文件已锁定,无法复制
  • VistaDB:这似乎是特定于.Net的
  • 以32位编译并使用WOW64:还有一个依赖项要求我们以64位编译,即使我们不使用任何64位功能

您需要的是带有可移植.mdf文件的SQL Server Express。要绕过复制限制,您需要确保相关软件不会保持连接打开(即创建断开连接的数据访问层)。

尝试查看一下@Orion:同意,建议OP使用SQL 2005 Express(如果可能)。交易破坏者能够在使用/连接数据库时复制数据库,而不需要使用某种可以复制“正在使用”文件的备份工具,这在SQL中是不可能的


另一种方法是自动备份和恢复到漫游计算机,但这离仅仅获取文件副本还有很长的路要走。

另一种方法是SQL Server Compact Edition(CE)。我相信这有64位二进制文件

我也同意Orion和Kev关于复制数据库的意见。

  • 用户可以在数据库打开时复制它,而不会有损坏的风险

您不能对任何具有多个用户和/或进程的数据库文件进行修改。

我要做的是创建一个单独的32位可执行文件,连接到Jet,我的64位应用程序可以通过COM与之通信


这满足了我“像喷气机一样工作”的一般要求,因为它是喷气式的。我的客户没有得到64位的好处,但其他要求更为重要。

幸运的是,过去两年情况发生了变化:


由于Office2010是64位版本,微软不得不为他们的Jet引擎创建一个64位版本。根据,包含一个64位驱动程序,可以访问Microsoft access数据库格式的最新版本。

复制要求的动机是什么?如果您的应用程序不需要任何64位功能,您可以为x86编译,然后所有jet提供程序都可以工作。难以置信!人们都急于发布答案!例如,我不明白“复制数据库”是什么意思:复制表?记录?为何用户将如何处理它们?用户是否会在再次“复制数据库”之前更新这些内容?请说得更清楚。@Philippe:请阅读“用户可以在数据库打开时使用Windows资源管理器复制数据库…”这个问题。通过Windows资源管理器或任何其他方法复制Jet数据库,除了Jet本身,都不是一个好主意。它可能会在99%的时间内工作,但其他1%的时间会给您带来损坏或不一致的结果。您不能使用动态附加的.mdf文件,多个用户分布在不同的位置。您是否阅读了原始要求?SQL Express不符合复制要求。当然,杰特也没有。@david.w.fenton:你真的读了我所有的答案,看到了关于“交易破坏者”的部分吗?