Pagina 1 di 1

[Tutorial] Database autonomo (standalone)

Inviato: sabato 27 agosto 2016, 16:54
da charlie
Uno dei problemi che si presentano quando si progetta un database è quello di proteggerlo da manipolazioni accidentali o volontarie da parte di coloro che lo dovranno adoperare.
Base non dà alcuna garanzia da questo punto di vista, ma il problema è aggirabile "nascondendo" l'interfaccia (IDE) all'utente e facendolo operare su delle copie dei formulari anzichè sugli originali.
E' noto che i Formulari di Base sono in realtà dei documenti di Writer collegati a Tabelle e Query, basterà quindi fare delle copie e collegarle nuovamente al database.

Operazione preliminare
Spostare il database in una cartella nascosta o protetta del computer in modo che non sia facilmente rintracciabile.
Dopo lo spostamento eseguire la "registrazione" del database per renderlo condivisibile da Writer: Strumenti > Opzioni > OpenOffice Base > Database > Nuovo … (in Mac OSX: OpenOffice > Prefernze > OpenOffice Base > Database > Nuovo …). Se è già stata fatta una registrazione con lo stesso nome occorre preventivamente cancellarla.

Primo caso: formulario unico
  1. Aprire il formulario in modalità Modifica
  2. File > Salva copia con nome. Completare la finestra di dialogo successiva indicando il Nome del file, la Cartella dove salvarlo e optando eventualmente per la scelta di una password di apertura o di una password di modifica in caso di scelta di file in sola lettura.
  3. Aprire il file .odt appena salvato
  4. Attivare il Modo bozza on
  5. Aprire il Navigatore Formulario ed evidenziare al suo interno il modulo principale. Fare clic destro ed aprire la finestra delle Proprietà.
  6. Eseguire il collegamento al database originale selezionando, nella scheda Dati, i giusti parametri per Sorgente dati, Tipo di contenuto, Contenuto
    Questa operazione è possibile solo se il database è "registrato" per la posizione in cui si trova attualmente il file .odb.
  7. Salvare il file e provare il funzionamento.
Secondo caso: formulario principale con subformulari
  1. Procedere come nel Primo caso.
  2. Ai punti 5. e 6. ripetere l'operazione per ogni SubFormulario
Terzo caso: più formulari con menu di collegamento
Procedere per ogni formulario e sub formulario come già visto in precedenza scegliendo una cartella a piacere dove collocarli.
  1. Aggiungere ad ogni copia .odt un pulsante di chiusura inserendo nella loro finestra delle Proprietà:
    Schermata 08-2457628 alle 10.47.24.png
  2. Salvare i file optando per la scelta di una password di modifica file in sola lettura.
  3. Aprire un nuovo documento di testo di Writer
  4. Attivare i Controlli del formulario in Menu > Barra degli strumenti
  5. Disegnare sul foglio tanti controlli Pulsante quanti sono le voci del menu principale più un pulsante di chiusura (numero dei formulari .odt salvati +1)
  6. Impostare la proprietà Didascalia per ogni pulsante (clic destro > Campo di controllo) con un nome appropriato
  7. Impostare la proprietà Operazione per ogni pulsante su: Apri documento/pagina web
  8. Nella proprietà URL di ogni pulsante fare clic su […] per indicare, tramite la finestra di dialogo successiva, il percorso per raggiungere il formulario di riferimento. E' possibile optare per l'apertura in sola lettura del formulario in questione.
  9. Ripetere quanto descritto al punto 1. per il pulsante di chiusura
  10. Salvare il file con nome e password appropriata.
  11. Le operazioni dal punto 3. in poi possono essere ripetute per creare accessi personalizzati al database per utenti diversi, ognuno con la propria password.

Re: [Tutorial] Database autonomo (standalone)

Inviato: domenica 28 agosto 2016, 21:46
da charlie
Per fare le mie prove ho usato un database di questo forum: viewtopic.php?f=13&p=41143#p41104.
Allego nella cartella zippata:
  • Il database .odb
  • I file .odt (copie formulari)
  • Il File Menu.odt con i pulsanti di menu. La password è "admin"
Tutto il database si trova nello stato di "lavori in corso" ma è funzionante.
Non scordare di registrare il database prima di usarlo.