[R-pkgs] ODB : connecting OpenOffice Base with R

Sylvain Mareschal maressyl at gmail.com
Sun Jun 19 13:25:11 CEST 2011

The recently released "ODB" package was developped to manage HSQL 
databases embedded in .odb files (the default when creating a database 
with OpenOffice Base) via R.


The goal of this package is to access OpenOffice databases via R, to 
process data stored in it or to automatize their building from scratch 
or updating.

The package provides 5 main functions :
- odb.create, to create a new .odb file from a template.
- odb.open, to produce an "odb" connection to a temporary copy of the 
.odb file.
- odb.close, to close the connection and update the .odb file.
- odb.read, to import data from the database to R via "SELECT" SQL 
queries built by the useR.
- odb.write, to update the database via "INSERT" or "CREATE" SQL queries 
built by the useR.

A few other functions are also provided to manage .odb specificties such 
as comments on table fields and stored queries. Some wrappers are also 
provided to insert directly a data.frame in a database table without 
writing the SQL query, list the table names ands fields or export the 
database in a .sql file.

Other wrappers may be added in future versions to help users not 
familiar with the SQL language.


connection <- odb.open("file.odb")
data <- odb.read(connection, "SELECT * FROM table WHERE id < 15")
odb.write(connection, "UPDATE table SET field='peach' WHERE id = 5")


.odb files, as any other OpenDocument files, are ZIP archives containing 
the HSQL files. To establish the connection, the .odb file is unzipped 
via the "zip" bash command if available, and the connection is made via 
the RJDBC interface. The "odb" object produced inherits from the 
"DBIConnection" class, thus all functions provided in the DBI packages 
may be used directly on it to manage the database. The odb.read and 
odb.write functions are only wrappers to such DBI functions, handling 
frequent issues such as charset or factors considerations.

Notice the database files are copied in a temporary directory, thus any 
update made to the database is not written in the .odb file untill the 
odb.close call, so simultaneous access to a same database (via R and 
OpenOffice) should not be considered.

Any suggestion or comment may be sent back to this email adress.

Sylvain Mareschal

More information about the R-packages mailing list