3

Microsoft 选择不发布 Jet 的 64 位版本,这是他们的 Access 数据库驱动程序。有谁知道一个好的选择?

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

  • 多个用户可以通过网络连接到数据库。
  • 用户可以在数据库打开时使用 Windows 资源管理器复制数据库,而不会造成损坏。Access 目前以足够的可靠性来满足我的客户的需求。
  • 在不需要 .Net 的情况下在 C++ 中运行良好。

我认为我认为行不通的替代方案(尽管我的理解可能不正确):

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

7 回答 7

12

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

由于 Office 2010 有 64 位版本,Microsoft 必须创建 Jet Engine 的 64 位版本。根据Microsoft 客户服务博客Microsoft Access 数据库引擎 2010 Redistributable包含一个 64 位驱动程序,它能够访问 Microsoft Access 数据库格式的最新版本。

于 2010-06-15T21:50:31.020 回答
2
  • 用户可以在数据库打开时复制数据库,而不会有损坏的风险。

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

于 2008-09-23T18:31:03.993 回答
1

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

于 2008-09-23T17:50:54.763 回答
1

试着看看http://www.vistadb.net/

于 2008-09-23T17:53:11.543 回答
1

@Orion:同意,建议 OP 使用 SQL 2005 Express(如果可能)。交易破坏者能够在使用/附加时复制数据库,这对于 SQL 来说是不可能的,而无需使用某种可以复制“使用中”文件的备份工具。

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

于 2008-09-23T17:58:55.477 回答
1

您可以查看的另一个替代方案是 SQL Server Compact Edition (CE)。我相信这有 64 位二进制文​​件。

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

于 2008-09-23T18:25:14.757 回答
1

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

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

于 2008-09-24T01:50:59.943 回答