[Risolto] avvio macro login a database mysql

Discussioni sulle caratteristiche di database
Rispondi
r.vanoni
Messaggi: 35
Iscritto il: lunedì 29 novembre 2010, 15:40

[Risolto] avvio macro login a database mysql

Messaggio da r.vanoni »

Buon anno a tutti. Qualcuno conosce il modo (macro o comando) per avviare il login di oobase quando ci si connette a mysql?
In pratica voglio avviare un formulario da riga di comando tipo così (ubuntu):
oobase macro:///alterna.Module1.menu
ma prima l'utente dovrebbe poter inserire utente e password per la connessione al db MYSQL sfruttando il dialog box predefinito di oobase che ho riportato in allegato. Grazie per i consigli
ciao
Allegati
login.png
Ultima modifica di r.vanoni il giovedì 6 gennaio 2011, 12:23, modificato 1 volta in totale.
Windows 10 - Apache OpenOffice 4.1.8
r.vanoni
Messaggi: 35
Iscritto il: lunedì 29 novembre 2010, 15:40

Re: avvio macro login a database mysql

Messaggio da r.vanoni »

Per il momento mi sono accontentato di utilizzare uno script da shell linux che mi chiede di inserire il nome dell'utente e poi lancia il comando di oobase con macro ovvero:
script:

Codice: Seleziona tutto

#!/bin/bash
# get user name
read -p "Enter user name : " username
echo "*** User: $username "
if [ "$username" == "ipaa" ];
        then
        soffice /home/docenti2/alterna/Alterna.odb macro:///Alterna.Module1.m_pagellini
        fi
Ma sto cercando il modo di far uscire un dialog box in oobase per inserire le credenziali di connessione al db di MYSQL (ipaa) che al momento ho collocato nel codice della macro che apre il formulario qui

Codice: Seleziona tutto

 
	Dim oForm 
	sub subDisplayForm(sDatabaseName as string, sFormName as string) 
   		dim mArgs(1) as new com.sun.star.beans.PropertyValue 
  	 	oDatabase = fnGetOpenDatabase(sDatabaseName) 
  	 	oConnection = oDatabase.DataSource.getConnection("ipaa","ipaa")
 
Windows 10 - Apache OpenOffice 4.1.8
r.vanoni
Messaggi: 35
Iscritto il: lunedì 29 novembre 2010, 15:40

Re: avvio macro login a database mysql

Messaggio da r.vanoni »

Fantastico, bastava dare uno sguardo all'argomento finestre di dialogo di openoffice. Ho risolto così creando una macro di login che passa la stringa della password di connesione ad una variabile globale chiamata oLogin dichiarata all'inizio del modulo. Così chi inserisce la password potrà connettersi al dbase MYSQL altrimenti se la password è errata oobase si chiude. ecco il codice che ho applicato:

Codice: Seleziona tutto

 
Global oLogin as string     'dichiarazione variabile globale all'inizio del modulo che contiene le macro
Sub login
oLogin = InputBox ("Inserisci la password","Finestra di Login")  'ecco il famoso dialog box che cercavo
if oLogin = "ipaa" 	 then   'ipaa corrisponde alla password
oWin = starDesktop.getCurrentFrame.getContainerWindow()
oWin.visible = false   'queste due righe servono per nascondere la finestra di oobase
REM lancia la macro che carica il formulario del mio menu iniziale
m_pagellini
else
ThisComponent.CurrentController.Frame.close( true )  'chiude tutto senza errori perchè non ci sono formulari aperti
end if
End sub
Naturalmente la macro di apertura delle form e che contiene le credenziali di connessione a MYSQL è cosi modificata

Codice: Seleziona tutto

sub subDisplayForm(sDatabaseName as string, sFormName as string) 
dim mArgs(1) as new com.sun.star.beans.PropertyValue 
oDatabase = fnGetOpenDatabase(sDatabaseName) 
oConnection = oDatabase.DataSource.getConnection("ipaa",oLogin)   'user=ipaa, password=variabile globale oLogin  
 
Infine per uscire da oobase con macro DA UN FORMULARIO senza errori o ripristini vari uso questa macro

Codice: Seleziona tutto

Sub escidaooo
Dim oForms as Object, oForm as Object 
Dim oCtrl as Object 
oForms = ThisComponent.DrawPage.Forms 
oForm = oForms.GetByName("Modulo") 
oForm.ActiveConnection.close(True) 
StarDesktop.terminate()
End sub
Voglio precisare che sto lavorando con mysql su localhost (LAMPP) utilizzando la connessione nativa di oobase
Ciao a tutti
Windows 10 - Apache OpenOffice 4.1.8
Rispondi