使用python构建MS Access数据库

时间:2011-05-05 00:26:02

标签: python linux ms-access

我计划出价的项目的主要目标是使用python创建Microsoft Access数据库。主DB后端将是postgres,但计划是导出Access图像。

这将是一个Web应用程序,它将从用户获取输入并通过黑盒子并将结果输出为访问数据库。 Web应用程序将构建在Linux服务器上。

我有一些相关的问题:

  • 是否有可以使用的可靠库或模块?
  • 您使用Access和python的经验是什么?
  • 任何提示,技巧或必须避免我需要知道的事情?

谢谢:)

8 个答案:

答案 0 :(得分:4)

您可以使用sqlite数据库吗?

修改

如果它是在Linux上并且它是MS Access,那么我很确定this is your only choice,但它的成本是1,550美元。

您要么必须支付这笔钱,要么说服客户改变其他两个参数中的一个。就个人而言,我会推动将数据库文件更改为sqlite。

当然,您总是可以编写自己的数据库驱动程序代码,但可能值得花时间来支付1,550美元。 mdbtools多年来一直致力于这项工作,该项目已被废弃。

找到它,有点

好的,所以我不能放过这个,发现有一个名为Jackcess的java库将写入可以运行jvm的任何平台上的MS Access mdb文件。当然,它是java而不是python,但也许你可以学习足够的java来将应用程序放在一起并从python中执行它?或者只是将整个应用程序切换到java,无论如何。

答案 1 :(得分:2)

重复问题的各种答案表明,无法在Linux服务器上创建MS Access数据库的“主要目标”。

当然,这样的目标本身并不值得。如果您告诉我们Access数据库的用户/消费者希望,我们可以帮助您。可能性:(1)创建一个脚本和一组(一组)文件,用户下载并运行以创建Access DB(2),如果它只是用于临时用户检查/操作,Excel文件可能会这样做。

答案 2 :(得分:2)

如果你对此非常清楚:

  • Python,它的数据库模块和ODBC配置

然后你应该知道如何做到这一点:

  • 打开数据库,读取一些数据,将其插入到不同的数据库中

如果是这样,那么您非常接近您所需的解决方案。诀窍是,您可以将MDB文件作为ODBC数据源打开。现在:我不确定你是否可以在MDB文件中使用ODBC“创建表格”,所以让我提出这个方法:

  1. 创建一个名为“TARGET.MDB”的MDB文件 - 包含必要的表格,表格,报告等。(放入一些虚拟数据并测试它是客户想要的。)
  2. 将ODBC数据源设置为“TARGET.MDB”文件。测试以确保您可以读/写。
  3. 删除所有虚拟数据 - 但保持表格不变。重命名文件“TEMPLATE.MDB”。
  4. 当您需要生成新的MDB文件时:使用Python 复制 TEMPLATE.MDB到TARGET.MDB。
  5. 打开数据源以写入TARGET.MDB。创建/复制所需的记录。
  6. 关闭数据源,将TARGET.MDB重命名为TODAYS_REPORT.MDB ...或对此特定数据导出有意义的任何内容。
  7. 这会对你有用吗?

    在Windows上完成这一切几乎肯定会更容易,因为对ODBC的支持将最为广泛。但是,我认为原则上您可以在Linux上执行此操作,前提是您找到了通​​过ODBC访问MDB的正确ODBC组件。

答案 3 :(得分:1)

您可以使用MS的officedata名称空间导出到XML。访问不应该有任何麻烦。您可以直接在文档树中提供单独的xsd架构,或编码类型和关系。这是一个简单的例子:

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns="urn:schemas-microsoft-com:officedata">

<Table1><Foo>0.00</Foo><Bar>2011-05-11T00:00:00.000</Bar></Table1>
<Table1><Foo>3.00</Foo><Bar>2011-05-07T00:00:00.000</Bar></Table1>

<Table2><Baz>Hello</Baz><Quux>Kitty</Quux></Table2>
</dataroot>
谷歌搜索“urn:schemas-microsoft-com:officedata”应该会有一些有用的点击。

答案 4 :(得分:0)

我建议将moving数据导入Microsoft SQL数据库,然后linking or importing要访问的数据。

答案 5 :(得分:0)

您是否可以创建自解压文件以发送给安装了Microsoft Access的Windows用户?

  1. 包含空白.mdb文件。
  2. 使用表格,架构动态构建xml文档 和数据
  3. 包含将要执行的导入可执行文件 所有的xml文档并导入到 Access .mdb文件。
  4. 这对用户来说是一个额外的步骤,但您可以依赖他们现有的驱动程序,软件和桌面。

答案 6 :(得分:0)

好吧,在我看来,你需要在运行windows的linux盒子上使用vmware服务器的副本,在vm中写入访问的web服务,以及从主linux盒子到它的通信。您不会在Linux上找到创建访问数据库的方法。将其作为一项要求并不会使技术成为可能。

答案 7 :(得分:0)

http://adodb.sourceforge.net/ - 在linux上安装,用php或python编写,连接到Access和PostgreSQL。

我们已经使用它多年了,而且效果很好。