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