【问题标题】:Populate a MS Access database in Linux在 Linux 中填充 MS Access 数据库
【发布时间】:2010-09-20 08:45:49
【问题描述】:

有什么方法可以在 Linux 中创建 Access / Jet 数据库?

我正在尝试从 linux 应用程序服务器(mysql 后端)提供数据,但没有找到任何可以让我这样做的工具 - 似乎应该有什么东西。

如果我无法创建数据库,有没有办法从 Linux 中插入现有的 Access 数据库文件?

CLI 工具、SQL 命令文件包装器、C 库、Ruby 库等等?

谢谢。

【问题讨论】:

    标签: linux ms-access


    【解决方案1】:

    有一个名为 jackcess 的 java 库可以从任何可以运行 jvm 的平台写入 Access mdb 文件。

    【讨论】:

      【解决方案2】:

      EasySoft 有一个 ODBC 驱动程序,可用于将数据插入现有的 MS Access 数据库。

      如果可以,我会将 Access 换成 SQL Server Express(免费下载),然后您可以使用 FreeTDS ODBC driver 从 Linux 或其他可用的商业 ODBC 驱动程序之一与它通信,以从 Linux 访问 MS SQL Server .

      【讨论】:

      • SQL Server Express 是否在 Linux 上运行?如果是这样,您只是将一个 Windows 数据库换成另一个。如果您正在运行 Linux,请使用 Linux 数据库!
      • Linux 可以通过 ODBC 和 TCP 套接字与 SQL 服务器通信。但是 Access ODBC 驱动程序本质上是 JET 的完整实现,而 Linux 没有其中之一。所以一个 SQL Server 实际上可以在这里工作。
      • 这个答案没有考虑“最近”的发展(即过去六年)。有关选项,请参阅 James' answermy answer
      • @Gord:我几乎不认为曾经正确的答案已经过时这一事实是合理的。
      【解决方案3】:

      可能是一个愚蠢的问题,但为什么要访问?我必须假设这些数据需要在某个时候转移到 Windows? 可能还有其他方法可以解决这个问题。 如果要在内部使用访问数据库,您可以从 Windows 上运行的 Access 设置与 MySQL 的连接,并以这种方式获取数据。 如果数据文件要断开连接,您可以尝试使用数据创建一个逗号分隔的文本文件,但给它一个 .xls 扩展名 - 在 Windows 机器上,这将导致它在 Excel 中打开,许多用户会这样做好的。

      【讨论】:

        【解决方案4】:
        1. 如果你想从头开始创建一个 access 数据库(mdb 文件),你需要一些 Microsoft Office dll,所以我想你可以忘记它。

        2. 如果您的想法是在 Access mdb 文件中插入/操作数据,则需要针对您想要使用的连接类型的特定驱动程序。我认为您的选择基本上是在 ODBC 和 OLEDB 之间。然后,您可以使用此连接来修改数据(INSERT、UPDATE、DELETE)、提取数据(SELECT)甚至通过 DDL 指令(CREATE、DROP 等)操作数据库结构。

        【讨论】:

        • re:“如果你想从头开始创建一个 access 数据库(mdb 文件),你需要一些 Microsoft Office dll,所以我想你可以忘记它。” - 不再适用,请参阅 James' answermy answer 了解选项。
        【解决方案5】:

        为什么不使用网络服务?您可以在 Windows 机器上运行 ASP(或其他)服务,它可以使用 ODBC 构造所需的 .mdb 文件。然后,您的 Linux 应用可以上传原始数据并接收 .mdb 作为响应。

        或者,只需在 Windows 上运行整个脚本。您可以安装 cygwin 和/或 ActiveSate perl 并从那里访问 Windows ODBC 驱动程序(包括 Access)。

        【讨论】:

          【解决方案6】:

          您是否可以在 Windows 中编辑 access 数据库,以便使用链接表,然后链接到外部文本文件、XML 文件、HTML 文档等?

          在 Office2007 中,使用“外部数据”选项卡,然后选择“文本文件”、“XML 文件”等。只需确保选择单选按钮“通过创建链接表链接到数据源”即可。如果您首先删除现有表并创建具有相同名称的链接表,您可能会欺骗您的应用程序通过 Access 作为代理查看文本文件。

          通过这种方式,您可以轻松地从您的 linux 应用程序更新外部文件,并且您的应用程序在与访问数据库交互时应该会看到该数据。

          【讨论】:

            【解决方案7】:

            您可以使用Crossover Office 在 Linux 系统上运行 Access 2002,并通过脚本将其自动化。 (比如你可以写一些VBScript,在CrossOver下使用wscript.exe执行。)

            最近,我自己为一些数据库做这个,效果很好。如果您在设置方面需要帮助,请给我发电子邮件。

            【讨论】:

              【解决方案8】:

              在 Linux 上创建 MS Access 数据库可以在 Windows 上完成。

              1. 在 Linux 上设置 SMB 共享
              2. 在 Windows 上,为您的 SMB 共享创建一个映射驱动器
              3. 创建 Access 数据库 3.1 如果您安装了 MS Access,您可以简单地在共享上创建一个新数据库。 3.2 如果您没有安装 MS Access,但在 Windows 上有 MS Access ODBC 驱动程序,只需创建一个新的 Microsoft Access ODBC 数据源 - 这将为您提供创建数据库的选项。

              然后您可以使用Easysoft Access ODBC Driver 将数据写入您的数据库。

              您也可以使用另一个 Easysoft 工具 Easysoft ODBC-ODBC Bridge。这将允许您将 Access 数据库保留在 Windows 上,但允许您从 Linux 应用程序对其进行 ODBC 调用。

              【讨论】:

                【解决方案9】:

                MDB Tools 提供:

                • C 库
                • 一套命令行工具
                • 一个 ODBC 驱动程序 [unixODBC](用于 http://www.unixodbc.org/),它又包含其他语言的包装器

                它是免费和开源的。

                【讨论】:

                • “它是免费和开源的。” - 垂死挣扎。并且坏了。
                【解决方案10】:

                有什么方法可以在 Linux 中创建 Access / Jet 数据库?

                当然。 UCanAccess 是一个免费的、开源的、纯 Java JDBC 驱动程序,可以在任何运行 Java 的机器上创建/读取/写入 Access 2000+ 数据库(对于 Access 97 是只读的)。有关如何在 Java 中使用它的更多信息,请参见此处:

                Manipulating an Access database from Java without ODBC

                如果您更愿意使用 Python,那么您可以将 UCanAccess 与 Jython 或 JayDeBeApi 一起使用,如我的回答 here 中所示。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-09-23
                  • 2018-12-21
                  • 1970-01-01
                  • 2019-11-24
                  • 2014-10-07
                  • 1970-01-01
                  • 2020-07-05
                  相关资源
                  最近更新 更多