phppdoodbcmdbtools

Segmentation fault with large tables using MDBTools


I am getting a segmentation fault when using MDBTools with large Microsoft Access tables within a database. Querying small tables works fine, but anything large (Have tables with roughly 80,000 rows) causes a segmentation fault.

I am using CentOS 6.5 with MDBTools and UnixODBC, trying to connect via PDO with PHP.

When I do a isql dashboard followed by help largetable I get a segmentation fault. When I do help smalltable the results are displayed correctly. How can I resolve this?


Solution

  • You are in a world of pain with mdbtools. It is not actively developed, there are 100s of bug reports on sourceforge and my personal experience with it is pretty bad. Your options are

    1. run isql under the debugger (gdb) and when it crashes, type "bt" (for back trace) then look in the code to see where it is failing and fix it.

    e.g.

    gdb /usr/local/bin/isql dashboard now enter r (to run) and hit enter type help largetable and enter when it crashes hit bt and enter

    that will tell you where it fell over and I'm betting somewhere in mdbtools. Now you need to get the source and work out what went wrong - you'll need to know C to do this.

    1. get some other method of reading mdbs like another MS Access ODBC driver but I only know of commercial ones for non-Windows platforms - that is what I did.