使用MDBTools的大型表存在分段错误


Segmentation fault with large tables using MDBTools

在数据库中使用具有大型Microsoft Access表的MDBTools时,遇到分段错误。查询小表很好,但任何大的表(具有大约80000行的表)都会导致分段错误。

我使用的是带有MDBTools和UnixODBC的CentOS6.5,试图通过PDO与PHP连接。

当我先执行isql dashboard,然后执行help largetable时,会出现分段错误。当我执行help smalltable时,结果会正确显示。我该如何解决此问题?

使用mdbtools,您将处于痛苦的世界中。它并没有被积极开发,sourceforge上有100多个错误报告,我个人对它的体验相当糟糕。您的选择是

  1. 在调试器(gdb)下运行isql,当它崩溃时,键入"bt"(用于反向跟踪),然后查看代码,查看它在哪里失败并修复它

例如

gdb/usr/local/bin/isql仪表板现在输入r(运行),然后按回车键键入help largetable并输入当它崩溃时,点击bt并进入

它会告诉你它在哪里掉下来的,我在mdbtools的某个地方下注。现在你需要找到源代码并找出问题所在——你需要知道C才能做到这一点。

  1. 获得一些其他读取mdb的方法,比如另一个MS Access ODBC驱动程序,但我只知道非Windows平台的商业方法——这就是我所做的