kenk has asked for the wisdom of the Perl Monks concerning the following question:

Oh wise and generous monks... I have a need to connect to a Microsoft Access database from my Linux server. It is not possible to store the .mdb file on the linux server, I need to connect to it through ODBC. I can do this on windows very simply with the Win32::ODBC driver, but why oh why can I not find similar under linux? The closest I can find is some very expensive EasySoft driver. My love for perl is like a truck! Berserker!!

Replies are listed 'Best First'.
Re: Linx Perl ODBC connect to MS Access
by Gangabass (Vicar) on Nov 24, 2008 at 03:46 UTC
Re: Linx Perl ODBC connect to MS Access
by mje (Curate) on Nov 24, 2008 at 08:52 UTC

    To my knowledge your only choices are:

    1. mdbtools - does not work very well. Usually used when the mdb is stored on Linux but it might work via SMB. I cannot recommend it though.
    2. an ODBC bridge like the one you found - but I'm not aware of any free ones.
    3. DBD::Proxy http://search.cpan.org/~timb/DBI-1.607/lib/DBD/Proxy.pm. Only slight problem is it does not support all of the DBI features.
Re: Linx Perl ODBC connect to MS Access
by Anonymous Monk on Nov 23, 2008 at 23:32 UTC
      This is not MSSQL, this is MS Access (JetDB engine). I have searched.. for several days and at many sites. When it comes to Windows (Active State) Perl, it's dead simple to install Win32::ODBC, set up the DSN connection, and it works.
      When I try to figure out where to even start on Linux, it's much more confusing. Apparently Perl needs an ODBC interface (DBI), an ODBC driver (???), and then an ODBC manager (unixODBC). The ODBC driver is the sticking point. So far, I have only found EasySoft's ($700+) driver to allow an ODBC connection to MS Access. This doesnt make any sense to me. I would think that once I have set up an ODBC connection (DSN) on the Windows box, I shouldnt need any special driver! It's *OPEN* DBC!
      Anyway, you can see how ignorant I am on this topic, and any links to educate me would be appreciated. Here's where I am getting my info:
      http://www.easysoft.com/developer/languages/perl/sql_server_unix_tutorial.html

      I'm not sure why I need the ODBC-ODBC bridge software. It seems redundant. Why do we need a bridge to join the same open standard?
      The closest I have found to a similar problem here on Perl Monks is this node:
      http://www.perlmonks.org/?node_id=419398
      but they have local access to the .mdb file, which I do not. I don't think MDBTools will help me.

      Thank you for trying to help and providing those links.