tag - cómo usar un archivo MS-Access de Linux?
mp3tag (7)
Actualmente estoy intentando acceder con Wine en Ubuntu y parece que estoy llegando allí. He descubierto que necesito copiar varias DLL de forma manual, pero eso podría ser fácilmente una falta de lectura sobre el tema.
Estoy estudiando un curso introductorio en bases de datos y uno de los ejercicios es trabajar con MS-Access. Sin embargo, estoy usando Linux en mi casa y aunque puedo usar las clases de computación en la universidad, está lejos de ser conveniente (tiempo abierto limitado, mi tiempo de estudio es mayormente noches).
Entonces, ¿cómo puedo usar un archivo de acceso ( *.mdb
) en Linux? Por uso me refiero a cambiar tablas, escribir consultas, etc.
¿Hay herramientas para convertirlo a otro formato de base de datos (mysql, postgresql o incluso gadfly)?
Además, ¿qué problemas puedo encontrar?
Aunque un poco anticuado, he tenido un buen éxito con mdbtools
que es un conjunto de herramientas de línea de comandos para acceder y convertir bases de datos de Access a otros formatos. Lo he usado para importar bases de datos en PostgreSQL.
Si está ejecutando una variante de Ubuntu, puede instalarlo con:
sudo apt-get install mdbtools
o puedes descargarlo desde aquí .
De la documentación: Conexión a Microsoft Access . Sin embargo, esto parece indicar que necesita acceso ejecutado en un host de Windows y conectarse a través de ODBC ... Consulte también Problemas conocidos .
No tienes suerte. El acceso no tiene equivalente real en Linux y si bien Kexi es una alternativa interesante que puede importar archivos de acceso y tiene como objetivo proporcionar una funcionalidad similar, en realidad no utiliza archivos de acceso una vez que se importan los datos.
Si su tarea es desarrollar una aplicación de Access con formularios, etc., en lugar de simplemente usar y la base de datos mdb
como una tienda, puede probar una versión reciente de Wine con una versión de Access compatible (consulte la lista de compatibilidad ) o, mejor aún, encontrar una Máquina de Windows donde está seguro de que va a funcionar.
No se olvide, el uso de una Máquina Virtual cargada con Windows lo ayudaría a lograr lo mismo en su caja Linux.
Puede trabajar con Access a través de una conexión (ODBC u OLEDB), siempre que solo necesite administrar la dimensión de "base de datos" del archivo (tablas y vistas, que se llaman "consultas" en Access).
Una vez que la conexión está abierta (vea aquí las cadenas de conexión), puede enviar comandos SQL a su base de datos mdb, como (donde cn
es aquí un objeto de conexión):
cn.execute "CREATE TABLE myTableName (myTable_id autoNumber, myTable_code Text, ...)"
Tenga en cuenta que MsAccess usa un DDL específico que se parece al T-SQL estándar, pero realmente no lo es. Verifique la sintaxis en la ayuda de MsAccess.
Dependiendo de su base de datos (y sus restricciones, valores predeterminados, claves principales utilizadas, relaciones, reglas de validación de datos, etc.), la transferencia de acceso puede ser fácil y directa o incluso podría no ser posible. Encontrará un problema cada vez que su base de datos implemente una regla de SQL específica / no de acceso.
Si realmente necesita convertir sus datos de acceso a otra cosa, le aconsejaría que (1) lo exporte bajo MS-SQL (la versión gratuita estará bien, hay un asistente de ampliación disponible en Access o en este sitio ), ( 2) utilice una herramienta adicional como esta para generar una secuencia de comandos SQL "CREATE DATABASE", incluidas o no inserciones de datos, (3) utilice esta secuencia de comandos para tratar de crear la base de datos y sus datos en otro servidor de base de datos.
Se mi respuesta anterior en una pregunta similar. Es un pequeño guión para hacer precisamente eso.
Si tiene una tarea para trabajar con Access, entonces encuentre una computadora con Windows y haga su ejercicio en la plataforma nativa de Access. No tiene sentido hacer nada más, ya que no aprenderá nada útil sobre Access.
Si la tarea es usar un almacén de datos Jet, entonces esa es una historia diferente. Y si lo es, entonces deberías haber formulado tu pregunta de manera diferente. No recomendaría usar Jet en nada que no sea un sistema de archivos nativo de Windows. Ciertamente, si el proyecto es realmente leer / escribir datos en un archivo de datos Jet, entonces realmente no está cumpliendo con la tarea si no está usando Windows al menos como el host ODBC.