2008-11-02 14 views
9

¿Hay alguna forma de crear una base de datos de Access/Jet desde Linux?Completar una base de datos de MS Access en Linux

Estoy tratando de alimentar datos desde un servidor de aplicaciones Linux (back-end mysql) y no he encontrado ninguna herramienta que me permita hacer esto, parece que debería haber algo.

Si no puedo crear una base de datos, ¿hay alguna manera de insertarla en un archivo de base de datos de Access existente desde Linux?

Herramienta CLI, envoltorio para el archivo de comandos SQL, biblioteca C, biblioteca Ruby, ¿algo?

Gracias.

Respuesta

1

EasySoft tienen un controlador ODBC que podría usarse para insertar datos en una base de datos MS Access existente.

Si puede, cambiaría Access por SQL Server Express (descarga gratuita), luego puede usar el FreeTDS ODBC driver para hablar desde Linux o uno de los otros controladores ODBC comerciales disponibles para acceder a MS SQL Server desde Linux.

+0

El segundo párrafo es un muy buen consejo (imo). –

+0

¿Se ejecuta SQL Server Express en Linux? Si es así, solo está intercambiando una base de datos de Windows por otra. Si está ejecutando Linux, ¡use bases de datos Linux! –

+0

Linux puede comunicarse con el servidor SQL a través de conectores ODBC y TCP. Pero un controlador Access ODBC sería esencialmente una implementación completa de JET, y Linux no tiene uno de esos. Entonces, un SQL Server realmente funcionaría aquí. – apenwarr

1

puede ser una pregunta tonta, pero ¿por qué acceder? Tengo que suponer que esta información necesita llegar a Windows en algún momento? Puede haber otras formas de resolver este problema. si el acceso db se va a usar en casa, puede configurar una conexión a MySQL desde Access que se ejecuta en Windows y obtener los datos de esa manera. si el archivo de datos se va a desconectar, puede intentar crear una coma -separa el archivo de texto con los datos, pero dale una extensión .xls - en una máquina de Windows esto hará que se abra en Excel, lo que muchos usuarios estarían bien.

0
  1. Si desea crear una base de datos de acceso (mdb) a partir de cero, usted necesitará un poco DLL de Microsoft Office, por lo que creo que puede olvidarse de él.

  2. Si su idea es insertar/manipular datos en un archivo Access mdb, necesitará un controlador específico para el tipo de conexión que desea utilizar. Creo que su elección será básicamente entre ODBC y OLEDB. A continuación, puede utilizar esta conexión para modificar sus datos (INSERTAR, ACTUALIZAR, ELIMINAR), extraerlos (SELECCIONAR) e incluso manipular la estructura de su base de datos a través de las instrucciones DDL (CREAR, BAJAR, etc.).

+1

re: "Si quieres crear una base de datos de acceso (archivo mdb) desde cero, necesitarás algunos dll de Microsoft Office, así que creo que puedes olvidarlo". - Ya no es cierto; consulte [la respuesta de James] (http://stackoverflow.com/a/5959483/2144390) y [mi respuesta] (http://stackoverflow.com/a/27179927/2144390) para ver las opciones. –

0

¿Por qué no utilizar un servicio web? Podría ejecutar un servicio ASP (o lo que sea) en una máquina con Windows, y podría construir el archivo .mdb requerido usando ODBC. Entonces su aplicación Linux podría cargar los datos brutos y recibir un .mdb en respuesta.

O bien, simplemente ejecute todo el script en Windows. Puede instalar cygwin y/o ActiveSate Perl y acceder a los controladores ODBC de Windows (incluido Access) desde allí.

0

¿Es factible editar su base de datos de acceso en Windows para que pueda usar tablas vinculadas que luego están vinculadas a un archivo de texto externo, archivo XML, documento HTML, etc.?

En Office2007 utilice la pestaña "Datos externos" y luego seleccione "Archivo de texto", "Archivo XML", etc. Simplemente asegúrese de seleccionar el botón de opción "Vincular a la fuente de datos creando una tabla vinculada". ' Si primero quita la tabla existente y crea una tabla vinculada con el mismo nombre, puede engañar a su aplicación para que vea el archivo de texto a través de Access como proxy.

De esta manera podría actualizar fácilmente el archivo externo desde su aplicación Linux y su aplicación debería ver esos datos cuando interactúe con la base de datos de acceso.

0

Puede ejecutar Access 2002 en el sistema Linux usando Crossover Office y automatizarlo desde un script. (Por ejemplo, puede escribir algunos VBScript y ejecutarlos usando wscript.exe en CrossOver.)

Últimamente, esto lo hago yo mismo para algunas bases de datos y funciona muy bien. Envíeme un correo electrónico si necesita ayuda para configurarlo.

4

Hay una biblioteca java llamada jackcess que puede escribir en archivos Access mdb desde cualquier plataforma que pueda ejecutar un jvm.

1

Para crear una base de datos MS Access en Linux se puede hacer desde Windows.

  1. instalación de un recurso compartido SMB en Linux
  2. En Windows crear una unidad asignada al recurso compartido SMB
  3. Crear una base de datos 3.1 Si tiene MS Access instalado puede simplemente crear una nueva base de datos en el recurso compartido . 3.2 Si no tiene instalado MS Access pero tiene un controlador ODBC de MS Access en Windows, simplemente cree un nuevo origen de datos ODBC de Microsoft Access; esto le dará la opción de crear una base de datos.

Puede utilizar como Easysoft Access ODBC Driver para escribir datos en su base de datos.

Alternativamente, podría utilizar otra herramienta de Easysoft, el Easysoft ODBC-ODBC Bridge. Esto le permitirá mantener su base de datos de Access en Windows pero le permitirá realizar llamadas ODBC desde su aplicación Linux.

+0

¡debe marcarse como respuesta! – aisbaa

0

MDB Tools proporciona:

  • una biblioteca C
  • un conjunto de herramientas de línea de comandos
  • un controlador ODBC [unixODBC] (para http://www.unixodbc.org/) que a su vez tiene contenedores para otros idiomas

Es gratis y de código abierto.

+0

* "Es gratis y de código abierto." * - Y moribundo. Y roto. –

0

¿Hay alguna forma de crear una base de datos de Access/Jet desde Linux?

Absolutamente. UCanAccess es un controlador Java JDBC puro, de código abierto que puede crear/leer/escribir bases de datos Access 2000+ (solo lectura para Access 97) en cualquier máquina que ejecute Java. Más información sobre cómo usarlo con Java se puede encontrar aquí:

Manipulating an Access database from Java without ODBC

Si prefiere trabajar con Python, puede utilizar UCanAccess con Jython o JayDeBeApi como se ilustra en mi respuesta here.

Cuestiones relacionadas