Arxius

Connectar OpenOffice2 a Mysql

Escrit al 2005-12-21 00:00:00 per cpina

Actualització: He afegit captures de pantalla, per fer-ho una mica més llegible

En aquest article es veu com connectar l'OpenOffice amb Mysql.

És a dir, des d'OpenOffice es veuran les taules d'una base de dades de Mysql, generar informes, formularis, consultes, etc. Tot de forma visual, sense haver de saber SQL, ni generar programes per tal de crear informes, etc.

L'article, tot i ser llarg, és només per explicar uns 4 o 5 passos necessaris per aconseguir la connexió. El resum de l'article pot ser suficient. Segurament unes imatges haguessin estat convenients, si cal més endavant es farà.

 


Introducció


Molta gent fa servir el paquet ofimàtic OpenOffice.org, el qual a la versió 2.0 (properament en català) també té bases de dades amb el mateix paradigma que Microsoft Access (és a dir, una base de dades "personal" -sense cap tipus de servidor-, consultes, informes, formularis, etc.)
De totes maneres també disposa de la possibilitat de connectar-se de manera fàcil a un servidor Mysql i treballar amb aquest com si fos una base de dades local (crear taules, inserir dades, modificar, etc.). És una bona solució per començar a poblar la base de dades, o tenir-ne una visió una mica més elevada que només amb la línia de comandes. A més a més hi ha molt bona integració amb el paquet OpenOffice, es poden generar informes, formularis, etc. de manera fàcil.

Cal mencionar que hi ha altres eines visuals que permeten fer aquestes operacions (si més no modificar taules, crear base de dades, etc.) però OpenOffice permet tenir-ho tot integrat, en cas que es desitgi.

En aquest article es veurà com configurar OpenOffice i Mysql perqué aquest accedeixi a una Base de dades. Amb el "Resum dels passos" segurament és suficient. Si no hi ha problemes és un procés curt i fàcil, però llarg d'explicar.

Resum dels passos


Resum dels passos a seguir, per tal de connectar OpenOffice amb Mysql (es detallaran a continuació):

  • Tenir OpenOffice 2.0 instal·lat al nostre ordinador
  • Tenir configurat un Java i que OpenOffice identifiqui aquest. Es pot comprovar a "Eines" - "Opcions" - "OpenOffice.org" - "Java", seleccionar el quin vulguem o "Afegir"). A Ubuntu ja ve ben configurat el Java de la FSF, sinó baixar de la plana Web de Sun el JRE 5.0 Update 6, descomprimir i indicar-li el directori a OpenOffice.
  • Tenir instal·lat Mysql, tenir una base de dades i permisos perque s'hi connecti un usuari:

  • apt-get install mysql-common
  • mysqladmin -u root create agenda

  • Baixar de la pàgina Web de Mysql el connector JDBC, desempaquetar-lo, deixar el fitxer .jar a un directori i que OpenOffice en conegui el seu PATH ("Eines" - "Opcions" - "OpenOffice.org" - "Java" - "ClassPath" - "AddArchive")
  • Ús de Mysql des d'OpenOffice Base ("Nou" - "Crear" - "Base de Dades", facilitar les dades de connexió). Treballar de forma habitual
  • Un afegitó: exemple "curiós" d'integració


    Instal·lar OpenOffice2


    Els usuaris d'Ubuntu Breeze o posterior ja tenen per defecte l'OpenOffice2 (tot i no ser el definitiu, poden tenir l'OpenOffice2 definitiu seguint aquestes instruccions)

    Usuaris de Debian Unstable ja el tenen als dipòsits oficials.

    Usuaris de Debian Sarge, poden instal·lar l'OpenOffice dels backports, o bé descarregar l'OpenOffice2 i convertir-lo en paquets Debian (instruccions, bàsicament descarregar-lo, descomprimir-lo, i fer alien -d *.rpm). Si ningú necessita ajuda poseu un comentari o apunteu-vos a la llista de correu.

    Instal·lar Java


    Usuaris d'Ubuntu: ja tenen configurat el Java de la FSF, poden passar a la següent secció.

    Usuaris d'altres distribucions: descarregar el JRE 5.0 de la pàgina Web de Sun, segurament el fitxer "Linux self extracting file".
    Nota: No és lliure, utilitza la Sun License. Més endavant es farà un article de com utilitzar el Java de la FSF amb OpenOffice.. Amb la Debian estable m'ha estat impossible, amb Debian inestable segurament cal instal·lar el paquet java-gcj-compat, tal com fa Ubuntu.

    Un cop descarregat, des d'un terminal es donaran permisos d'execució (chmod u+x fitxer_descarregat_jre.bin) i s'executarà: ./fitxer_descarregat.bin. Tenint en compte els permisos d'escriptura, l'instal·leu on ho cregueu convenient, com pot ser /opt/jre15 o /usr/local/jre15 (si estem amb l'usuari root) o tipus /home/usuari/bin/jre si el volem dins el HOME de l'usuari.

    Un instal·lat el Java, a l'OpenOffice anar al menú "Tools" - "Options..." - "OpenOffice.org" (pestanya esquerre) - "Java". Esperar una mica (intenta buscar les màquines Java disponibles) i al llistat seleccionar la "Sun Microsystems Inc.". En cas que no aparegui cap al llistat fer clic a "Add..." i buscar el directori on s'ha instal·lat. Tancar i executar de nou l'OpenOffice.




    En aquest moment ja es té el Java instal·lat, si es fa "File" - "New" - "Database" i "Create a new Database" per fer una nova base de dades es pot accedir a les funcions que sense la màquina Java no es podia (p. ex. "Tables" - "Create Table in Design View...")




    Instal·lar i configurar Mysql


    Cal tenir un servidor Mysql per connectar-s'hi. El podem instal·lar a la nostra pròpia màquina, o que es trobi a una altra màquina i que estigui en xarxa. Els dos casos són molt semblants.

    Per instal·lar Mysql a una Ubuntu cal seguir els passos de la guia Ubuntu.

    Per fer-ho a una Debian es pot teclejar, com usuari primer:

    apt-get install mysql-common

    Un cop instal·lat, s'ha de fer una base de dades nova i donar permisos a un usuari per aquesta base de dades. Per exemple, es pot fer:

    mysqladmin -u root create agenda

    Nota: caldria modificar la contrasenya d'accés de l'usuari primer de Mysql (no té res a veure amb l'usuari primer del sistema). Per fer-ho, es pot executar:

    mysqladmin -u root password nova_contrasenya


    Si es té una contrasenya i es vol crear una nova base de dades, perquè mysqladmin demani la contrasenya cal executar:

    mysqladmin -u root -p create agenda2


    Cal donar permisos a usuari primer per connectar-se des de la IP de la pròpia màquina mitjançant TCP/IP. El client consola de Mysql ho fa mitjançant un fitxer sòcol, en canvi OpenOffice i el seu controlador ho faran mitjançant una connexió a localhost. Així que cal:

    mysql -u root -p
    (escriure la contrasenya, si en demana)

    grant all on agenda.* to 'root'@'127.0.0.1';
    (si ho volem sense contrasenya)

    grant all on agenda.* to 'root'@'127.0.0.1' identified by 'contrasenya';
    (si desitgem una contrasenya)



    Nota: per seguretat, caldria fer un usuari especial per la base de dades, amb només les operacions sobre les taules que es necessitin. Consultar un manual de Mysql (al final del document n'hi ha un enllaçat), ja que són tasques d'administració.

    Nota avançada:
    Si es vol que altres màquines accedeixin a aquesta base de dades, cal comentar la línia "skip-external-networking" de /etc/mysql/my.cnf i reiniciar Mysql (/etc/init.d/mysql restart).
    A continuació caldrà entrar al mysql amb "mysql -u root -p", i fer un nou usuari (en aquest cas, de nom usuari, i que pot accedir des de tota la xarxa 192.168.0.X, identificat amb 'contrasenya' a la base de dades agenda per qualsevol taula):

    grant all on agenda.* to 'usuari'@'192.168.0.%' identified by 'contrasenya';


    Instal·lació del controlador OpenOffice -> Mysql


    Ja només falta descarregar el controlador per tal que OpenOffice es pugui comunicar amb Mysql. Cal anar a la pàgina Web de Mysql i baixar el fitxer "Source and Binaries (tar.gz)".
    Un cop s'hagi descarregat al nostre ordinador, cal extreure'n el el fitxer mysql-connector-java-3.1.12-bin.jar. Es pot fer mitjançant alguna eina visual o bé des de la línia de comandes:

    tar -xvzf mysql-connector-java-3.1.12.tar.gz mysql-connector-java-3.1.12/mysql-connector-java-3.1.12-bin.jar

    (Ull! poden haver canviat el número de versió)

    Llavors només cal anar a l'OpenOffice, menú "Tools" - "Options..." - "OpenOffice.org" - "Java" - "Class Path" - "Add archive" i anar a buscar el fitxer .jar. Seleccionar-lo.





    En aquest moment OpenOffice ja es pot connectar amb Mysql. El següent apartat es veu com fer-ho.

    Ús d'OpenOffice amb Mysql


    Ja només cal connectar a la base de dades, fer-hi les noves taules i posar-hi dades, fer informes, etc. S'explica aquí l'assistent que demanarà les coses, segurament és més fàcil fer-ho amb l'assistent que explicar-ho.

    Igualment, no s'entrarà amb l'ús d'OpenOffice Database. A Internet hi ha manuals molt bons. Alguns es poden trobar a la pàgina web de Superalumnos. En aquest article només veurem com començar-hi a treballar, sense veure-ho en profunditat.

    Per connectar a la base de dades, a l'OpenOffice s'ha de marcar "File" - "New" - "Database". Apareixerà un quadre de diàleg, on s'ha de seleccionar "Connect to an existing database", i marcar l'opció "MySQL". Després premerem "Next".





    Ara cal seleccionar "Connect using JDBC (Java Database Connectivity)" i "Next".




    Ja quasi acabant l'assistent, a "Name of the database" s'escriurà el nom de la base de dades que s'ha fet als passos anteriors. A "Server URL" s'escriurà "localhost", o bé la IP o nom de la màquina que conté el servidor Mysql. "Port number" i "MySQL JDBC driver class" no es modificarà. Es pot pressionar "Test class", si apareix "The JDBC driver was loaded successfully" és que ha anat bé, en cas contrari donarà un error i informació de l'error (segurament algun problema amb Java, cal llegir l'error atentament i si es demana ajuda a algú fer un copiar i enganxar de l'error).




    El següent pas és escriure el "User name" (root, si s'ha seguit aquest article). Si s'ha configurat una contrasenya, marcar "Password required". Es pot fer una prova mitjançant el botó "Test connection" (demanarà la contrasenya si cal).





    Ja a l'últim pas, es demana si "Do you want the wizard to register the database in OpenOffice.org?". Si es marca sí, aquesta base de dades estarà disponible com a font de dades a totes les aplicacions d'OpenOffice, si es marca que no, no estarà disponible (en aquest exemple es marca que sí). Finalment ja es pot pressionar "Finish", i demanarà el nom d'un fitxer local per desar-hi dades de la base de dades. Les dades estaran al servidor Mysql, però demana un fitxer local pels informes, formularis, consultes, etc.




    Finalment es tindrà ja l'interfície habitual d'OpenOffice Database, si es fa clic a "Tables" potser demanarà la contrasenya (si cal) i es veuran les taules de la base de dades. Prement "Create table in design view" es podran fer les taules que es desitgin, directament al servidor (per tant, si es miren els logs de Mysql al servidor es veurà com OpenOffice executa sentències SQL com "create table", etc.).





    Evidentment, també es pot connectar amb qualsevol base de dades ja existent al servidor (sempre que es faci amb un usuari que tingui permisos suficients) i veure'n les taules, fer consultes de forma amigable, generar informes amb assistents, etc.


    Un exemple d'integració


    S'executa l'OpenOffice Writer (l'editor de text) i es fa clic a "View" - "Data sources". A l'esquerra se selecciona a la base de dades que s'ha registrat, es fa clic a "Tables" i a una taula (amb dades, millor). Es marca tota la taula sencera. Hi ha una icona, a la barra d'eines de "Sources" (la nova que ha aparegut) que és "Data to text", on apareix un menú per seleccionar quines columnes es volen al document i on es pot canviar el format. Finalment es clica "Ok" i es tindrà una taula al document amb el contingut de la taula de la base de dades. Fent-ho mitjançant consultes (Queries) es podria inserir un Join d'una taula, filtrar per files, etc.





    Nota


    Fa mesos a Catux es va fer un curs extens de Mysql (el vem repetir en format breu a les passades Jornades de Programari Lliure i a Jornades de PL a Ripoll), la documentació està disponible en format OpenOffice Impress (presentacions). Es pot descarregar.
  • Categories: Articles, Trucs


    Comentaris

    • Sense comentaris
    Arxius