mysql 2 - comunecampagnano.it · gestire un database mysql tramite l'interfaccia di...
Post on 01-Dec-2018
225 Views
Preview:
TRANSCRIPT
MySQL 2(maisiquel tu ovvero gestire un database MySQL tramite LibreOffice)
Augusto Scatolini (webmaster@comunecampagnano.it) (a.scatolini@linux4campagnano.net)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
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.
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
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
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
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)
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.
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.
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”
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”
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”
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
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”
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
top related