domingo, 11 de mayo de 2008

Accede a una Base de Datos MySQL desde OpenOffice usando ODBC.

Hay varias formas de sincronizar una base de datos MySQL con OpenOffice; entre los métodos disponibles están los siguientes:
De las alternativas anteriores, en esta nota exlicaré como hacerlo usando ODBC en Linux; en particular para la distribución Ubuntu 8.04 Hardy Heron, sin embargo dadas las similitudes entre las distintas distribuciones GNU/Linux, esta guía puede extenderse a varias de ellas.

1. Antes de:

Antes que nada, es necesaria una base de datos para realiazar pruebas y asegurarse de que todo funciona correctamente.
# Crea la base de datos
CREATE DATABASE prueba;
USE prueba;


# Tablas de la base de datos prueba
CREATE TABLE tabla1
(
Id INTEGER PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(20) NOT NULL,
Apellido_paterno VARCHAR(20) NOT NULL,
Apellido_materno VARCHAR(20)
);

CREATE TABLE tabla2
(
Id INTEGER PRIMARY KEY AUTO_INCREMENT,
Escuela VARCHAR(20) NOT NULL
);


# Registros para las tablas
INSERT INTO tabla1 VALUES (\N, 'Fulano', 'Mata', \N);
INSERT INTO tabla1 VALUES (\N, 'Sotano', 'Mata', \N);
INSERT INTO tabla2 VALUES (\N, 'UAM Iztapalapa');

2. Instalación y configuración del driver:

Se necesitan los paquetes:
libmyodbc, Driver ODBC para MySQL.
unixodbc, Librerías ODBC.
unixodbc-bin, Herramientas gráficas para la gestión y navegación por ODBC.
sudo apt-get install unixodbc libmyodbc unixodbc-bin
ya que se encuentran instaladas las herramientas anteriores; cconfigura el driver usando la herramienta gráfica instalada por unixodbc-bin:
sudo ODBCConfig
se debe abrir una ventana similar a esta:
Muevete a la pestaña "SystemDNS", da clic en "Add" y nuevamente en el botón "Add"de la ventana siguiente, esto para agregar un nuevo driver:

* En el campo "Name" escribe un identificador para la configuración del driver.
* En el campo "Driver" escribe la dirección del archivo libmyodbc.so; si no la conoces puedes encontrarla usando alguno de los siguientes comandos:
locate libmyodbc.so
find /usr/lib/ -name libmyodbc.so
* Escribe la dirección del archivo libodbcmyS.so en el campo "Setup"; si no la conoces, puedes usar algúno de los comandos anteriores.

(ejemplo de configuración)
da clic en el botón de la esquina superior izquierda (el que tiene la palomita ) para guardar y salir.

Situados nuevamente en la ventana "Select a Driver...", damos clic en "Ok" que abre la ventana "Data Source Properties".

* Escribe un nombre y opcionalmente una descripción para la conexión.
* En el campo "Server", escribe el nombre del servidor al cual quieres accesar (localhost en este ejemplo).
* Escríbe el nombre de la base de datos a la cual te conectarás en el campo "Database"; para este ejemplo el valor es el nombre de la base creada al inicio (prueba).
* Si usas el puerto por defecto de MySQL, puedes dejar el campo "Port" vacío.

(ejemplo de configuración)
da clic en la palomita como en la vez anterior y en "Ok" para salir de la primera ventana.

3. Configuraración en OpenOffice:


En Ubuntu 8.04, OpenOffice Base no se instala por defecto; sin embargo se encuentra en los repositorios y puedes instalarlo usando apt:
sudo apt-get install openoffice.org-base
Una vez instalado y en ejecicución; se presenta un asistente que nos ayudará a configurar la conexión siguiendo una serie de pasos:
  1. Elige la opción Conectar con una base de datos existente y selecciona MySQL.
  2. Selecciona Conectar usando ODBC.
  3. Clic en el botón Examinar, si configuraste correctamente el driver, debe aparecer el identificador que escribíste anteriormente (conector ODBC en el ejemplo), seleccionalo y da clic en Aceptar.
  4. Escribe tu nombre de usuario en el campo con el mismo nombre y si es el caso activa la casilla "Se requiere una contraseña".
  5. Esta es la última ventana, la cual te pregunta una serie de cosas, escoge las que creas más convenientes.
Cuando des clic en el botón Finalizar se despliega una ventana para guardar la base de datos configurada; una ves hecho esto último aparece la ventana con la base de datos creada con MySQL lista para usarse.

4. Fuentes:


Todo lo expuesto aquí fue gracias a la información proporcianada en:
Connect OpenOffice.org to MySQL

3 comentarios:

Anónimo dijo...

Hola, hecho todo y me funciona, pero luego, las consultas hacen cosas raras y los formularios también (no liga los datos de formulario con los subformularios). Yo también uso hardy, y como parece que a todo el mundo le funciona de miedo, puede que tenga algo que ver con hardy.
Un saludo,

Saúl dijo...

no creo que tenga que ver nada con hardy, siento no poder ayudarte; pero nunca he intentado lo que dices. Hice esto porque necesitaba combinar corresponcia a partir de los datos de una base de datos que tengo.

Anónimo dijo...

Hola, estoy siguiendo tus pasos para crear el ODBC y son muy buenos, pero como lo hago para conectar con SQL Server 2000, donde obtengo los drivers?
Gracias