MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice...

14
MySQL 2 (maisiquel tu ovvero gestire un database MySQL tramite LibreOffice) Augusto Scatolini ([email protected] ) ([email protected] ) Miniguida n. 182 Ver. 1.0 marzo 2013 La prima guida che ho scritto su MySQL risale ad aprile 2004 ed è disponibile all'indirizzo http://www.comunecampagnano.it/gnu/accessless/fromMySQL/index.htm la seconda parte della guida sempre di aprile 2004 è disponibile all'indirizzo http://www.comunecampagnano.it/gnu/accessless/fromMySQL/index2.htm ho ripreso l'argomento nel febbraio del 2011 con http://www.comunecampagnano.it/gnu/mini-howto/mysqlbiblibre/mysqlbiblibre.pdf poi a marzo 2011 con http://www.comunecampagnano.it/gnu/mini-howto/phpmyedit/phpmyedit.pdf e infine a marzo 2013 http://www.comunecampagnano.it/gnu/mini-howto/2013_181_MySQL_HOWTO/maisiquel_autu.pdf

Transcript of MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice...

Page 1: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

MySQL 2(maisiquel tu ovvero gestire un database MySQL tramite LibreOffice)

Augusto Scatolini ([email protected]) ([email protected])Miniguida n. 182Ver. 1.0 marzo 2013

La prima guida che ho scritto su MySQL risale ad aprile 2004 ed è disponibile all'indirizzo http://www.comunecampagnano.it/gnu/accessless/fromMySQL/index.htm

la seconda parte della guida sempre di aprile 2004 è disponibile all'indirizzo http://www.comunecampagnano.it/gnu/accessless/fromMySQL/index2.htm

ho ripreso l'argomento nel febbraio del 2011 con http://www.comunecampagnano.it/gnu/mini-howto/mysqlbiblibre/mysqlbiblibre.pdf

poi a marzo 2011 con http://www.comunecampagnano.it/gnu/mini-howto/phpmyedit/phpmyedit.pdf

e infine a marzo 2013 http://www.comunecampagnano.it/gnu/mini-howto/2013_181_MySQL_HOWTO/maisiquel_autu.pdf

Page 2: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Gestire un database MySQL tramite l'interfaccia di LibreOffice Base

Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice Base che ci permette di creare Maschere, Query e Report molto agevolmente bisogna puntualizzare alcuni prerequisiti:

Come si abilitano le Macro su LibreOffice?Come si registra un database su LibreOffice?Come si costruiscono le macro per navigare nell'applicativo?Come ci si collega al database MySQL?

Come si abilitano le Macro su LibreOffice?

Dal menu Strumenti, apriamo Opzioni, poi Sicurezza

poi apriamo Sicurezza delle macro che troveremo settata su Alto.

Settiamo la sicurezza su Medio se vogliamo confermare ogni volta l'abilitazione delle macro o su Basso per non avere più fastidi.

Page 3: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Come si registra un database su LibreOffice?

La via maestra è quella di registrare il database in fase di creazione, ma può sempre essere registrato in un secondo momento.Aprendo, come al solito, il menu Strumenti, poi Opzioni, LibreOffice Base e infine Database

possiamo vedere tutti i database registrati sul computer, in questo caso nessuno.

Cliccando su nuovo si apre una maschera

attraverso la quale possiamo scegliere il database da registrare

Page 4: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Scegliamo il nostro databaseclicchiamo su OK

e il nostro database verrà registrato come mostrato in figura

Come si costruiscono le macro per navigare nell'applicativo?

Normalmente un database di LibreOffice avrà una maschera che funge da menu, con una serie di pulsanti che attivando delle macro aprono altre maschere, chiudono maschere, aprono Query e Report. Altre due macro sono opportune, anche se non necessarie, (nessuna macro è necessaria), una macro con funzioni analoghe a quella di MS Access denominata Autoexec che permette l'apertura automatica della maschera Menu quando viene aperto il database di LibreOffice e un'altra che, posizionata sul menu chiude tutto l'applicativo.

Macro per LibreOffice 4

Macro per aprire una maschera (formulario):

Sub apri_maschera_nome_mascheraThisDatabaseDocument.FormDocuments.getbyname("nome_maschera").open()End Subinserire il vero nome della maschera qui

Macro per chiudere una maschera:

Sub chiudi_maschera_nome_mascheraThisDatabaseDocument.FormDocuments.getbyname("nome_maschera").close()End Subinserire il vero nome della maschera qui

Page 5: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Macro per aprire una Query:

sub OpenQueryDataView( aQueryName as string, aConnection as variant ) oDesktop = createUnoService("com.sun.star.frame.Desktop") Dim aURL as New com.sun.star.util.URL aURL.Complete = ".component:DB/DataSourceBrowser" oDispatchObject = oDesktop.queryDispatch(_ aURL, _ "_Blank",_ com.sun.star.frame.FrameSearchFlag.CREATE) Dim aProps(5) as New com.sun.star.beans.PropertyValue aProps(0).Name = "ActiveConnection" aProps(0).Value = aConnection aProps(1).Name = "CommandType" aProps(1).Value = com.sun.star.sdb.CommandType.QUERY aProps(2).Name = "Command" aProps(2).Value = aQueryName aProps(3).Name = "ShowMenu" aProps(3).Value = True aProps(4).Name = "ShowTreeView" aProps(4).Value = FALSE aProps(5).Name = "ShowTreeViewButton" aProps(5).Value = FALSE oDispatchObject.dispatch(aURL, aProps)End Sub

sub apri_query_nome_query( oEvent as object ) openQueryDataView( "nome_query", oEvent.Source.Model.Parent.ActiveConnection )end subnome della query

per aprire altre query non è necessario riscrivere tutta la funzione OpenQueryDataViewsarà sufficiente aggiungere tanti sub apri_query …. quante sono le query da aprire

Macro per aprire un report

Sub apri_report_nome_reportThisDatabaseDocument.ReportDocuments.getByName("nome_report").open()End Subinserire il vero nome del report qui

Macro autoexec:

Sub autoexec Dim InteractionHandler As Object InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler") ThisDatabaseDocument.CurrentController.connect("","") ThisDatabaseDocument.FormDocuments.getByName ( "nome_maschera" ).open End Sub inserire il vero nome della maschera menu

Macro per chiudere LibreOffice:

sub esci ThisDatabaseDocument.close(True) end sub

Page 6: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Il codice delle macro deve essere scritto in:

Strumenti → Macro → Organizza macro → LibreOffice Basic...

la gerarchia è formata da una serie di macro che fanno riferimento al module1 della libreria standard del database in oggetto, che in questo caso si chiama “Nuovo database.odb”

Qui si vede una parte del listato (il codice vero e proprio)

Page 7: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Questa è una rudimentale maschera con funzioni da menu.

Ho creato 7 pulsanti, ho scritto sul pulsante quello che dovrebbe fare quando premuto e ho associato una specifica macro ad ogni pulsante.

Agendo sulle proprietà del pulsante, sulla scheda Eventi, alla voce “Eseguire l'azione” è associata la macro “aprimascheratabella1” del “Module1” della libreria “Standard”

Tutte le macro devono

essere associate in questo

modo, tranne l'autoexec che

invece va associata

all'evento “Apri

documento” nella scheda

Eventi del pannello

Personalizza al quale si

accede dal menu Strumenti.

Page 8: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Come ci si collega al database MySQL?

Guardando i seguenti filmati su Youtube si può apprendere come connettere LibreOffice a un database esterno MySQL usando il connettore JDBC oppure ODBC oppure direttamente

LIBREOFFICE 3 BASE - Connect to an external MYSQL Server using JDBChttp://www.youtube.com/watch?v=TYN4umIVnCo

Connect Access / OOBase to MySQL Using ODBC Part 1 of 2http://www.youtube.com/watch?v=P_QU1-BVWpU

Connect Access / OOBase to MySQL Using ODBC Part 2 of 2http://www.youtube.com/watch?v=Wyz-SZsTtYo

LIBREOFFICE BASE - Directly connection to MYSQL Serverhttp://www.youtube.com/watch?v=5px1cqC4dM8

Proviamo ad installare l'estensione “MySQL Connector for OpenOffice.org” della Oracle ( 3,2 MB) dall'indirizzo mostrato in figura

Purtroppo questa estensione non funziona su LibreOffice 4 (montato su Windows 7)

Se invece andiamo all'indirizzo http://extensions.openoffice.org/node/5644 possiamo scaricare il connettore MySQL per Apache OpenOffice

Questo funziona, nel senso che si installa senza errori.

Page 9: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Ma purtroppo riporta un errore quando si stenta di collegarsi con MySQL

Proviamo a collegarci con il connettore ODBC scaricandolo dall'indirizzo mostrato in figura

scarichiamo il file msi,

installiamolo

apriamo LibreOffice, nuovo database e scegliamo “collega a un database esistente”

selezioniamo il tipo di database “MySQL”

Page 10: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

scegliamo il tipo di connessione ODBC

sfogliamo per selezionare la sorgente dati ODBC

non dobbiamo farci ingannare dal “contrassegni” presente tra i sorgenti.

Non è di MySQL, dobbiamo cliccare su “Gestisci”

Page 11: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

Dobbiamo aggiungere una nuova sorgente cliccando su “Aggiungi”

diamo un nome significativo,

il server sarà “localhost”,

l'utente sarà “root”,

con la sua password,

la port adi default è 3306

il database “contrassegni” potrà essere selezionato dal menu a tendina

a condizione di averlo precedentemente creato tramite PhpMyAdmin

è buona norma verificare la connessione premendo il pulsante “Test” che, in caso affermativo riporterà il messaggio “Connection successful”

Page 12: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

ora, finalmente, apparirà anche la connessione “contrassegni” ma tramite il connettore “MySQL ODBC 5.2W Driver”

dopo aver premuto OK

inseriamo il nome dell'utente, in questo caso “root”

registriamo il database

Page 13: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

digitiamo la password di root

salviamo e finalmente apriamo il database che appare come un comunissimo database di LibreOffice. Sarà veramente quello di MySQL?

proviamo ad inserire un record (in questo caso sulla riga 9) “ultimo inserito”

Page 14: MySQL 2 - comunecampagnano.it · Gestire un database MySQL tramite l'interfaccia di LibreOffice Base Una volta deciso di gestire il nostro database con l'interfaccia di LibreOffice

a questo punto, come verifica, apriamo un browser e puntiamo all'indirizzo http://localhost/phpmyadmin e successivamente apriamo il database MySQL contrassegni, poi la tabella contrassegni e verifichiamo se l'ultimo record aggiunto via LibreOffice è realmente presente nell'archivio MySQL.

E' presente. Questo significa che lo stesso database MySQL può essere amministrato (gestito) sia via web tramite phpmyadmin o altro servizio che via LibreOffice tramite il connettore ODBC.

FINE Questo documento è rilasciato con licenza Copyleft

(tutti i rovesci sono riservati) altre miniguide suhttp://www.comunecampagnano.it/gnu/miniguide.htm

oppure direttamente su http://miniguide.tk sito consigliato: http://www.linux4campagnano.net

blog consigliato: http://campagnano-rap.blogspot.com