Microsoft Jet的64位替代

时间:2020-03-06 14:36:51  来源:igfitidea点击:

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

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

  • 多个用户可以通过网络连接到数据库。
  • 用户可以使用Windows资源管理器在数据库打开时复制它,而不必担心会损坏。 Access目前可以满足我的客户的需求,并且具有足够的可靠性。
  • 不需要.Net即可在C ++中很好地工作。

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

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

解决方案

我们正在寻找的是带有可移植.mdf文件的SQL Server Express。要解决复制限制,我们需要确保所讨论的软件没有保持连接打开(即,创建断开连接的数据访问层)。

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

@Orion:同意,建议OP与SQL 2005 Express一起使用(如果可能的话)。交易破坏者能够在使用/添加时复制数据库,而SQL却没有使用这种备份工具,而无需使用某种可以复制"使用中"文件的备份工具。

另一种方法是自动备份并还原到漫游机,但这与仅获取文件的副本还有很长的路要走。

我们可以查看的另一种选择是SQL Server Compact Edition(CE)。我相信它具有64位二进制文​​件。

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

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

我们不能使用具有多个用户和/或者进程对其进行修改的任何数据库文件来执行此操作。

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

这满足了我对"像Jet之类的作品"的一般要求,因为它就是Jet。我的客户没有从64位中受益,但其他要求则更为重要。

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

由于Office 2010提供64位版本,因此Microsoft必须创建其Jet Engine的64位版本。根据Microsoft客户服务博客,Microsoft Access数据库引擎2010可再发行组件包含64位驱动程序,该驱动程序能够访问Microsoft Access数据库格式的最新版本。