[R] problems accessing MS Access 2003 database with RODBC

Marc Schwartz marc_schwartz at me.com
Mon Apr 26 19:40:52 CEST 2010


On Apr 26, 2010, at 12:11 PM, Boris.Vasiliev at forces.gc.ca wrote:

> Dear users,
> 
> I am trying to access a Microsoft Access database from R using RODBC
> package 
> but I have had little success.  The setup works with isql, RODBC seems
> to 
> connect to the database, but RODBC does not recognize the data in the
> database.  Can anybody advise where I am going wrong?
> 
> I am using R version 2.10.1 on Ubuntu 8.04. ODBC version is 2.2.11.
> Mdbtools 
> version is 0.6pre1. RODBC version is 1.3.1.  Test database  with one
> table
> was created in MS Access 2003.
> 
> The ODBC configuration files are
> 
> /etc/odbcinst.ini:
> [Microsoft Access Driver (*.mdb)]
> Description = MDB Tools ODBC drivers
> Driver = /usr/lib/libmdbodbc.so.0
> Setup =
> FileUsage = 1
> CPTimeout = 
> CRReuse =
> 
> /home/vasiliev/.odbc.ini:
> [test_db]
> Description = test events database
> Driver = Microsoft Access Driver (*.mdb)
> Database = /home/vasiliev/siginci/data/test_db.mdb
> Trace = Yes
> TraceFile = /home/vasiliev/odbc.log
> 
> When I test the set-up with isql it seems to work:
> 
> isql -v -m10 test_db
> +---------------------------------------+
> | Connected!                            |
> |                                       |
> | sql-statement                         |
> | help [tablename]                      |
> | quit                                  |
> |                                       |
> +---------------------------------------+
> SQL> help
> +-----------+-----------+-----------+-----------+-----------+
> | TABLE_CAT | TABLE_SCHE| TABLE_NAME| TABLE_TYPE| REMARKS   |
> +-----------+-----------+-----------+-----------+-----------+
> |           |           | MSysObject| SYSTEM TAB|           |
> |           |           | MSysACEs  | SYSTEM TAB|           |
> |           |           | MSysQuerie| SYSTEM TAB|           |
> |           |           | MSysRelati| SYSTEM TAB|           |
> |           |           | MSysAccess| SYSTEM TAB|           |
> |           |           | tblA1     | TABLE     |           |
> |           |           | MSysAccess| SYSTEM TAB|           |
> +-----------+-----------+-----------+-----------+-----------+
> SQLRowCount returns 7
> 7 rows fetched
> SQL> help tblA1
> +-----------+-----------+-----------+-----------+----------+-----------+
> -----------+
> | TABLE_CAT | TABLE_SCHE| TABLE_NAME| COLUMN_NAM| DATA_TYPE| TYPE_NAME |
> COLUMN_SIZ|
> +-----------+-----------+-----------+-----------+----------+-----------+
> -----------+
> |           |           | tblA1     | ID        | 4        | FIX ME    |
> |
> |           |           | tblA1     | Row       | 5        | FIX ME    |
> |
> |           |           | tblA1     | Value     | 4        | FIX ME    |
> |
> +-----------+-----------+-----------+-----------+----------+-----------+
> -----------+
> SQLRowCount returns 3
> 3 rows fetched
> SQL> select * from tblA1
> +-----------+-------+-----------+
> | ID        | Row   | Value     |
> +-----------+-------+-----------+
> | 1         | 1     | 2         |
> | 2         | 10    | 10        |
> | 3         | 30    | 30        |
> | 4         | 40    | 40        |
> +-----------+-------+-----------+
> SQLRowCount returns 4
> 4 rows fetched
> 
> However, when the connection is opened in R, it appears to be empty.
> DBMS details
> are not recognized; table and data are unavailable:
> 
>> ch <- odbcConnect("test_db")
>> odbcGetInfo(ch)
>       DBMS_Name         DBMS_Ver  Driver_ODBC_Ver Data_Source_Name 
>              ""               ""               ""        "test_db" 
>     Driver_Name       Driver_Ver         ODBC_Ver      Server_Name 
>       "test_db"        "test_db"          "03.52"          "03.52" 
>> sqlTables(ch)
> [1] TABLE_CAT   TABLE_SCHEM TABLE_NAME  TABLE_TYPE  REMARKS    
> <0 rows> (or 0-length row.names)
> 
> Does anybody know what I am doing incorrectly? 
> Sincerely,
> Boris.


As far as I know, the use of mdb-tools for Access via RODBC on Linux is not supported. A search of the archives reveals this post from Prof. Ripley from 2004:

  http://tolstoy.newcastle.edu.au/R/help/04/11/6585.html

I am presuming that this is still the case, though I am cc:ing Prof. Ripley for confirmation.

In that same thread, there is a post from David Whiting that you might find helpful as an alternative, presuming that the information is still of value 6 years hence.

HTH,

Marc Schwartz



More information about the R-help mailing list