我打算投标的项目的主要目标涉及使用python创建Microsoft Access数据库。主数据库后端将是postgres,但计划是导出Access图像。使用python构建MS Access数据库
这将是一个Web应用程序,它将从用户处获得输入,并通过黑盒并将结果作为访问数据库输出。网络应用程序将建立在Linux服务器上。
我有几个相关的问题:
- 是否有可以使用可靠的库或模块?
- 你有什么经验使用Access和python?
- 任何提示,技巧,或必须避免我需要知道?
谢谢:)
我打算投标的项目的主要目标涉及使用python创建Microsoft Access数据库。主数据库后端将是postgres,但计划是导出Access图像。使用python构建MS Access数据库
这将是一个Web应用程序,它将从用户处获得输入,并通过黑盒并将结果作为访问数据库输出。网络应用程序将建立在Linux服务器上。
我有几个相关的问题:
谢谢:)
你可以使用sqlite数据库吗?
编辑:
如果它必须是在Linux和它必须是到MS Access,那么我敢肯定this is your only choice,但它的成本$ 1,550。
您将不得不掏钱,或说服客户改变其他两个参数之一。就个人而言,我会推动将数据库文件更改为sqlite。
当然,你可以随时编写自己的数据库驱动程序,但它可能是值得花时间1550美元。多年来,mdbtools一直在努力,这个项目已经被放弃了。
发现,还挺
好了,我不能让这个去,发现有一个叫Jackcess一个Java库,会写到MS Access MDB文件,可以运行在任何平台上JVM。当然,它是java而不是python,但是也许你可以学习足够的java来将应用程序放在一起并从python执行它?或者只是将整个应用程序切换到Java,无论如何。
我建议moving数据到Microsoft SQL数据库,然后linking or importing的数据访问。
重复问题的各种答案表明,您在Linux服务器上创建MS Access数据库的“主要目标”是无法实现的。
当然,这样的目标本身并不值得。如果你告诉我们什么Access数据库的用户/消费者预计做与它,也许我们可以帮助你。可能性:(1)创建一个用户下载并运行的脚本和(一组)文件,以创建一个Access DB(2),如果它只是用于临时用户检查/操作,则可以使用Excel文件。
您可以创建一个自解压文件发送给安装了Microsoft Access的Windows用户吗?
这对用户来说是一个额外的步骤,但是您可以依靠他们现有的驱动程序,软件和桌面。
我希望,如前所述,输出必须是mdb应用程序。 – dassouki 2011-05-10 19:02:16
如果你知道这不够好:
那么你应该知道如何做到这一点:
如果是这样,那么你非常接近你所需的解决方案。诀窍是,您可以打开一个MDB文件作为ODBC数据源。现在:我不知道,如果你能在一个MDB文件“创建表”使用ODBC,所以让我提出这个食谱:
会为你工作吗?
由于对ODBC的支持将得到最广泛的应用,因此在Windows上这样做几乎肯定会更容易。不过,我认为原则上你可以在Linux上这样做,只要你找到正确的ODBC组件来通过ODBC访问MDB。
谁给了你一对互相矛盾的要求,输出必须是Jet/ACE MDB,并且创建必须发生在Linux机器上?那简直是疯狂。 – 2011-05-12 01:27:15
@ David-W-Fenton:那就是你的客户:) – extraneon 2011-05-14 19:22:45
我解雇了那些不让我做他们支付我工作的客户。 – 2011-05-18 21:34:52
您可以使用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>
谷歌搜索“瓮:架构 - 微软COM:officedata”应该把一些有用的结果。
好吧,在我看来,你需要在运行windows的linux系统上运行vmware服务器,在vm中写入访问的web服务,以及从主linux框中与之通信。你不会在Linux上找到创建访问数据库的手段。把它称为一项要求不会使其技术上成为可能。
任何事情都可能在Linux上;) – James 2011-05-12 03:15:43
http://adodb.sourceforge.net/ - 安装在Linux上,用php或python编写,连接到Access和PostgreSQL。
我们已经使用了它多年,它的工作原理非常漂亮。
因此,如果我有一个“模板”毫秒访问数据库,它应该工作完美,然后进行小编辑/更改? – dassouki 2011-05-14 19:00:46
如果安装了Access,您可以使用Python for Windows自动从Python进行自动化扩展:http://sourceforge.net/projects/pywin32/ – HansUp 2011-05-05 00:40:40
@HansUp - 不会安装它,因为Web应用程序将继续linux服务器 – dassouki 2011-05-05 00:42:47
重复http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux – abbot 2011-05-05 06:28:37