在Objective-C中读取MS Access .MDB数据库

时间:2011-04-22 07:53:26

标签: objective-c ms-access

我正在探索将ATCS Monitor从Windows移植到iPad和Mac OS X. ATCS Monitor使用Microsoft JET 4.0从Access MDB文件中读取数据。是否有可以读取MDB文件的Objective-C库,或者我是否需要自己编写(最有可能基于MDB Tools)?

3 个答案:

答案 0 :(得分:1)

没有用于读取MDB文件的开源Objective-C库。

以下是我在Mac / iPhone上阅读MDB文件的所有方法:

1)MDB Tools:版本0.7非常实用。有一个非常有用的,尽管文档记录很差的C API。支持阅读表格。是根据LGPL许可的,因此在iOS上使用它可能不合法,但在Mac上不应该是一个问题。

2)Actual ODBC drivers for Access(专有):仅适用于Mac。也许你可以与公司签订一些许可协议。

3)Jackcess,最初是MDB Tools to Java的一个端口,但是他们添加了写支持。可能只在Mac上有用。

4)HXTT Access Pure Java JDBC:用于读写Access数据库的专有Java库。这很有趣,因为company name Impathic在他们的Mac(我相信iPhone)应用程序中使用它。它们非常疯狂,它们在应用程序包中包含一个完整的Java运行时,因此它们可以在App Store上分发Java应用程序,但它似乎有效(尽管有一些错误)。

5)我自己的专有库。我写了一个Objective-C库(从头开始)来读取Access数据库,我在我的Mac and iPhone apps中使用它。如果您有兴趣获得许可,请与我联系。

答案 1 :(得分:0)

为什么数据需要是iPad / OS X版本的Access .mdb文件?

我不知道ATCS系统的内部是如何工作的,但我认为数据可以通过某种类型的Web服务获得。如果.mdb文件仅用于在本地计算机上存储数据,那么您的Objective-C实现可以使用任何本地数据存储系统来执行相同的操作。

我无法想象.mdb文件以任何方式暴露在应用程序外部的场景。程序是否下载.mdb文件然后读取数据?如果是这种情况,那么编写自己的Web服务就足够了,它可以将服务器上的数据转换为另一种格式,而这种格式可以被Objective-C代码更好地使用。

编辑:因此用户彼此共享.mdb文件。我仍然认为您最好的选择是将.mdb文件转换为更容易通过iOS / Mac消费的格式的Web服务。为了使应用程序的Objective-C版本能够导入.mdb文件,它们至少需要连接到Internet,只要Web服务转换数据所花费的时间。

编辑2:也许您已经找到了需要填写的内容。如果没有用于共享此数据的中央存储库,那么您可以创建此类存储库并鼓励Yahoo组中的用户使用它。让某人可以非常轻松地从MDB文件上传和导入他们的数据。除桌面界面外,还可以创建Web界面。汇总所有单个上传的数据。有很多可能性!

我理解会见用户所处的位置,但对我来说也是一个很好的机会,让这个特定的用户社区能够进入21世纪。

答案 2 :(得分:0)

我会将这些MDB文件导入MySQL数据库(因为OSX无法真正读取这些文件),并让您的OSX / Ipad客户端直接访问该数据库层(或提供访问权限的Web服务)