【问题标题】:Is Access database independent of MS Access application?Access 数据库是否独立于 MS Access 应用程序?
【发布时间】:2011-12-08 18:13:38
【问题描述】:

我使用 .NET 语言编写应用程序以访问 MS Access 数据库。我想问是否可以在没有安装 MS Access 的 PC 上使用我的应用程序及其数据库?

【问题讨论】:

    标签: .net database ms-access portability


    【解决方案1】:

    这经常被错误引用和误解。这里的建议也是正确的。

    因此,所谓的 JET 数据库引擎已经成为 windows 的一部分,并作为默认安装组件预安装了 10 多年。事实上,它是 Windows 98SE 的默认设置。这意味着全新的开箱即用的 windows 机器可以在没有安装软件的情况下使用 windows 脚本来打开这些 Access 文件。

    因此,您可以从 VB.net、c# 等打开这些文件,而无需安装任何额外的组件。

    但是请记住,从 Office 2007 开始,如果您使用新的 accDB 格式文件而不是 mdb,那么您将必须安装更新版本的 JET 引擎。这个较新版本的引擎与较旧的 mdb 文件兼容,但需要打开 access 2007 及更高版本的格式数据库。 (accDB/accDE)。

    这个新引擎中还有一个连接功能,可以打开 SharePoint 表,甚至连接到 Office 365 发布 Access 数据库(您可以对这些 Office 365 表使用 SQl)。

    因此,在所有情况下,您都不需要在计算机上安装 Access 应用程序本身,但您确实需要一个版本的数据库引擎。

    正如过去很长一段时间所指出的,此数据库默认安装在并将继续安装在 Windows 上。

    但是如前所述,对于具有多值支持、SharePoint 支持、数据库触发器和存储过程的新格式数据库,以及该数据库引擎的 64 位版本?然后您必须下载并安装更新版本的 JET,如前所述,它现在称为 ACE。

    请记住,虽然较新版本的数据引擎具有表触发器和存储过程(当您从 .net 修改数据时会运行),但我相信您需要 ms-access 来编辑 + 创建新的存储过程,您不能使用 ACE 对象模型创建或编辑表触发器和存储过程。

    但是,一旦创建了表触发器和存储过程,则再次不需要在计算机上安装 Access 即可运行这些表级触发器和过程。

    【讨论】:

    • 是的,还要记住(旧的)Jet Engine 只能在 32 位模式下运行。所以不要忘记在启动项目的构建选项中将 x86 设置为目标平台。否则它将无法在 64 位机器上运行。
    • 比我的答案更完整!很好的答案!
    • 如前所述,另一个问题是有一个 64 位版本的 ACE 可供下载和安装。这个 64 位数据引擎提供 64 位 ODBC 驱动程序,还允许 64 位进程打开和读取新的 accDB。您还可以使用此 64 位版本的数据引擎来读取和打开较旧的旧 mdb 文件,并使用 64 位代码/进程执行此操作。所以不限于使用旧的 32 位版本的 JET,您现在可以使用 64 位进程内代码来打开此类数据库文件。
    【解决方案2】:

    创建 MS Windows 的虚拟机并在那里进行测试。是的,这是可能的。

    【讨论】:

      猜你喜欢
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多