2008/12/13

MDB en Linux

A pesar de que se vive mucho mejor sin Windows, el uso extendido de ciertas aplicaciones dependientes de este sistema operativo hacen que los usuarios se encuentren a merced de los antojos comerciales de Microsoft. Un caso bien conocido son las herramientas de CAD que no acaban de encontrar su competidor en el mundo FLOSS (Free Libre Open Software Libre). Pero quizás, es la suite ofimática Microsoft Office la que más impide el paso de los usuarios al uso de Linux.
OpenOffice es una alternativa plena para substituir a la suite ofimática de Microsoft, pero a veces la conversión de formatos no es satisfactoria y si hay macros de por medio menos. De todos modos, yo me resisto a volver a Windows y existen formas de lograr trabajar a gusto sobre Linux a pesar de la traba de los formatos propietarios.
En mi caso actual me encuentro con una "base de datos" Access mdb con muchísimas tablas que quería poder manejar desde Linux. Para ello existe mdbtools que es un conjunto de herramientas para leer mdb. Se puede instalar mediante el comando:
$sudo aptitude install mdbtools
Para listar las tablas de un mdb podemos usar el comando:
$mdb-table -1 nombrefichero.mdb
Para exportar a CSV sin comillas y separado por comas he usado la siguiente sentencia:
$mdb-export -S -q '' -d ';' -D '%Y-%m-%d' nombrefichero.mdb nombretabla > nombretable.csv
Y para exportar todas las tablas a la vez...

IFS=$'\n'
for table in `mdb-tables -1 nombrefichero.mdb`; do
echo '**** Exporting table: '$table '****'
mdb-export -S -q '' -d ';' -D '%Y-%m-%d' nombrefichero.mdb $table > $table'.csv'
echo 'Done.'
done
***** Actualización *****
Se puede abrir un MDB desde openoffice conectándose mediante ODBC. La receta:
http://wiki.services.openoffice.org/wiki/Connecting_to_Microsoft_Access
       
   

3 comentarios:

Hugo_DC dijo...

Interesante blog!.

Salu2.

Riverplatense dijo...

Me vino bárbaro para importar una db nefasta de un nefasto programa llamado "cédula escolar" que el estado provee a los colegios convirtiéndolos en esclavos de m$. Muchas gracias por el dato, exporté todo a csv y ahora haré una aplicación con Django.

Muchas gracias

nachouve dijo...

Me alegro mucho de que te haya servido. Yo cada vez que me llega un Access es lo primero que hago. :)