【发布时间】:2010-09-20 08:45:49
【问题描述】:
有什么方法可以在 Linux 中创建 Access / Jet 数据库?
我正在尝试从 linux 应用程序服务器(mysql 后端)提供数据,但没有找到任何可以让我这样做的工具 - 似乎应该有什么东西。
如果我无法创建数据库,有没有办法从 Linux 中插入现有的 Access 数据库文件?
CLI 工具、SQL 命令文件包装器、C 库、Ruby 库等等?
谢谢。
【问题讨论】:
有什么方法可以在 Linux 中创建 Access / Jet 数据库?
我正在尝试从 linux 应用程序服务器(mysql 后端)提供数据,但没有找到任何可以让我这样做的工具 - 似乎应该有什么东西。
如果我无法创建数据库,有没有办法从 Linux 中插入现有的 Access 数据库文件?
CLI 工具、SQL 命令文件包装器、C 库、Ruby 库等等?
谢谢。
【问题讨论】:
有一个名为 jackcess 的 java 库可以从任何可以运行 jvm 的平台写入 Access mdb 文件。
【讨论】:
EasySoft 有一个 ODBC 驱动程序,可用于将数据插入现有的 MS Access 数据库。
如果可以,我会将 Access 换成 SQL Server Express(免费下载),然后您可以使用 FreeTDS ODBC driver 从 Linux 或其他可用的商业 ODBC 驱动程序之一与它通信,以从 Linux 访问 MS SQL Server .
【讨论】:
可能是一个愚蠢的问题,但为什么要访问?我必须假设这些数据需要在某个时候转移到 Windows? 可能还有其他方法可以解决这个问题。 如果要在内部使用访问数据库,您可以从 Windows 上运行的 Access 设置与 MySQL 的连接,并以这种方式获取数据。 如果数据文件要断开连接,您可以尝试使用数据创建一个逗号分隔的文本文件,但给它一个 .xls 扩展名 - 在 Windows 机器上,这将导致它在 Excel 中打开,许多用户会这样做好的。
【讨论】:
如果你想从头开始创建一个 access 数据库(mdb 文件),你需要一些 Microsoft Office dll,所以我想你可以忘记它。
如果您的想法是在 Access mdb 文件中插入/操作数据,则需要针对您想要使用的连接类型的特定驱动程序。我认为您的选择基本上是在 ODBC 和 OLEDB 之间。然后,您可以使用此连接来修改数据(INSERT、UPDATE、DELETE)、提取数据(SELECT)甚至通过 DDL 指令(CREATE、DROP 等)操作数据库结构。
【讨论】:
为什么不使用网络服务?您可以在 Windows 机器上运行 ASP(或其他)服务,它可以使用 ODBC 构造所需的 .mdb 文件。然后,您的 Linux 应用可以上传原始数据并接收 .mdb 作为响应。
或者,只需在 Windows 上运行整个脚本。您可以安装 cygwin 和/或 ActiveSate perl 并从那里访问 Windows ODBC 驱动程序(包括 Access)。
【讨论】:
您是否可以在 Windows 中编辑 access 数据库,以便使用链接表,然后链接到外部文本文件、XML 文件、HTML 文档等?
在 Office2007 中,使用“外部数据”选项卡,然后选择“文本文件”、“XML 文件”等。只需确保选择单选按钮“通过创建链接表链接到数据源”即可。如果您首先删除现有表并创建具有相同名称的链接表,您可能会欺骗您的应用程序通过 Access 作为代理查看文本文件。
通过这种方式,您可以轻松地从您的 linux 应用程序更新外部文件,并且您的应用程序在与访问数据库交互时应该会看到该数据。
【讨论】:
您可以使用Crossover Office 在 Linux 系统上运行 Access 2002,并通过脚本将其自动化。 (比如你可以写一些VBScript,在CrossOver下使用wscript.exe执行。)
最近,我自己为一些数据库做这个,效果很好。如果您在设置方面需要帮助,请给我发电子邮件。
【讨论】:
在 Linux 上创建 MS Access 数据库可以在 Windows 上完成。
然后您可以使用Easysoft Access ODBC Driver 将数据写入您的数据库。
您也可以使用另一个 Easysoft 工具 Easysoft ODBC-ODBC Bridge。这将允许您将 Access 数据库保留在 Windows 上,但允许您从 Linux 应用程序对其进行 ODBC 调用。
【讨论】:
MDB Tools 提供:
它是免费和开源的。
【讨论】:
有什么方法可以在 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 中所示。
【讨论】: