gpt4 book ai didi

database - 在我的 Windows 程序中从 mdb 数据库文件中获取数据

转载 作者:可可西里 更新时间:2023-11-01 10:07:58 24 4
gpt4 key购买 nike

我有一段时间帮助客户将 mdb 表数据导出到 csv 文件(然后进一步处理这些 csv 文件)。我用过 Ubuntu,所以我可以使用 mdbtools(mdb 查看器)。现在客户希望我以 Windows 程序的形式将我所做的工作自动化。我遇到了两个问题:

  1. 几个小时后,我仍然没有在 Windows 上找到一个可以以我可以合并到程序/脚本中的方式导出我的表数据的免费工具。 Jackcess (jackcess.sourceforge.net) 看起来很有前途,但在运行下载的 jar 时,会弹出一个完全不相关的诺基亚套件程序...

  2. 我已经成功地使用 pyodbc 模块在 python 程序中打开了两个表,但所有其他表都无法打开,因为“没有读取权限”。直到现在我都认为数据库没有 Access 限制,因为 Ubuntu 上的 mdb 查看器打开所有表而没有任何模糊。没有其他可用的文件,只有 mdb 文件。一种可能是这根本不是权限问题,而是列名中的特殊字符的问题。我无法打开的所有表都至少有一个带有国家字符的列名称,而我可以打开的 2 个两张表则没有。我尝试在从 python 调用的 SQL 选择中使用方括号,如下所示:SQL = 'SELECT [colname] from SomeTable;'但这没有什么区别。我也无法从不包含国家字符的列中获取数据(除了 2 个有效的表之外)。

如果确实是权限问题,我的程序也必须可以执行任何解决方案,不能有任何手动步骤。

编辑:生成 mdb 文件的程序的开发人员已确认对任何表都没有限制。因此,错误消息“无读取权限”具有误导性。相反,我将专注于解决我认为是列名称中的国家字符的问题。我将从下面建议的 JSDB 方法开始。谢谢大家!

编辑 2:我发现了一个我认为很重要的发现:我可以使用 pyodbc 打开的所有表都有 Owner=Admin,而我无法打开的所有表根本没有所有者(似乎是空字符串,“Owner=” ).

编辑 3:我尝试了 JDBC。再次出现同样的错误,正如编辑 2 中的发现所预料的那样。显然要解决的问题是表所有权(尽管 Linux 下的 MDB 查看器似乎并不关心这个......)。由于文件的创建者说他没有引入任何权限设置,我猜奇怪的表所有权可能是使用新程序(如 2010)读取旧程序(如 90 年代某个时候)产生的数据的结果,或者是在旧程序的某些迁移过程中引入的。关于如何解决它的任何想法?

最佳答案

您也许可以使用 VBScript。 VBScript 通常用于网页的 ASP 文件中,但也可以作为 Windows 程序单独使用。

VBScript 是免费的,因为它是您在记事本中编写的代码。

其他人可能会为您提出更好的答案。祝你好运。

关于database - 在我的 Windows 程序中从 mdb 数据库文件中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com