Home > Connessioni, Guide, Internet, Linux, Pacchetti, Ubuntu > Accedere ad un database su AS400/iSeries con OpenOffice

Accedere ad un database su AS400/iSeries con OpenOffice

14 aprile 2008

Dopo aver visto come stabilire una connessione con un database su AS400/iSeries usando ODBC vedremo un approccio pratico usando OpenOffice per leggere i dati dal database collegato. Prima di proseguire è necessario aver installato l’iSeries Access e configurato un DSN ODBC.

Configurazione della fonte dati ODBC

Faremo utilizzo di OpenOffice.org DataBase che troviamo nel menu Applicazioni, Ufficio e sin dal suo avvio ci chiederà se creare un nuovo database o aprirne uno nuovo o collegarsi ad un database esistente. Sceglieremo proprio quest’ultima opzione, dalla casella di scelta specificheremo ODBC e procederemo avanti.

Alla seconda fase della configurazione della connessione ODBC sarà necessario specificare il nome del DSN ODBC creato in precedenza, se non lo si ricorda cliccare sul pulsante Sfoglia per visualizzare un elenco.

Saranno mostrati tutti i DSN di sistema e tutti i DSN per l’utente che utilizza OpenOffice; sceglierne uno, premere OK e verrà copiato nella finestra precedente.

Scelto il DSN è possibile procedere avanti e verrà richiesta la configurazione dell’autenticazione al server. E’ possibile inserire qui il nome utente che verrà utilizzato per la connessione. Lasciandolo in bianco invece verranno utilizzati nome utente e password specificati nella creazione del DSN. Se oltre l’utente è necessaria una parola d’ordine immettere la spunta su Password necessaria.

Prima di proseguire si raccomanda di provare la connessione mediante il pulsante Connessione di prova. Se è necessaria la password verrà richiesta e se desiderato memorizzata in memoria fino alla chiusura di OpenOffice: non sarà salvata all’interno del database in alcun modo e alla successiva riapertura sarà nuovamente richiesta.

Confermato il buon funzionamento della connessione con i dati forniti è possibile procedere con Avanti. Siamo all’ultima operazione della creazione guidata dove verrà richiesto se registrare il database tra le fonti dati di OpenOffice, fonti visibili a tutte le applicazioni mediante alcune opzioni e se aprire il database subito dopo il salvataggio.

Cliccando su Fine sarà infine richiesto il nome del file da salvare.


Utilizzo del database collegato

All’apertura del database collegato sarà automaticamente mostrata la scheda Formulari (simili alle maschere di Access), questo per evitare lo scaricamento delle tabelle sul server a meno che non venga esplicitamente richiesto cliccando su Tabelle.

Prima di proseguire è importante definire se stiamo utilizzando un database relazionale (WRKRDBDIRE) oppure la classica maniera LIBRERIA/FILE. Nel secondo caso è necessario apportare una modifica alle opzioni avanzate del database, specificando di non aggiungere il nome del catalogo (database) nelle espressioni perché altrimenti nelle query verrebbero restituiti errori poco comprensibili.😉

Se è necessario modificare le opzioni per l’uso delle librerie, aprire il menu Modifica, scegliere il sottomenu Database e lì cliccare su Impostazioni avanzate.

Dalla finestra Proprietà avanzate togliere la spunta da Usa il nome del catalogo nelle istruzioni SELECT. Potrebbe esser necessario rimuovere la spunta anche da Usa il nome dello schema nelle istruzioni SELECT per non specificare il nome della libreria nell’uso dei files, come avviene abitualmente su OS/400, usando le liste delle librerie.


Creazione di una query sul database collegato

Tornando ad OpenOffice, cliccando sulla scheda Tabelle verrà effettuata la scansione dei files nelle librerie. Ovviamente saranno mostrati solo i files fisici (PF) e logici (LF), non i programmi, query e altre cose simili. I files logici sono facilmente riconoscibili per la freccia verde nell’icona.

OpenOffice chiama con Ricerche le viste/query, vediamo quindi come funzioni regolarmente la creazione su un database collegato via ODBC. Cliccando su Ricerche e quindi in alto su Crea ricerca in vista struttura per avviare la creazione di una nuova query.

Verranno richieste le tabelle o le altre query/ricerche da includere nell’operazione, sceglierle una alla volta e cliccare su Aggiungi. Al termine della scelta cliccare su Chiudi per iniziare l’operazione di modifica.

Nell’esempio abbiamo preso due tabelle e collegate mediante join trascinando ogni campo chiave con l’altra tabella. Abbiamo anche creato un’espressione “N9CART” * 100 + “N9CDAR” e assegnato il nuovo nome Codice Articolo. Altri due campi sono stati presi come in origine, aggiungendo unicamente l’alias Descrizione e Prezzo.

Prima di eseguire la query si raccomanda di salvarla mediante la prima icona in alto, poiché i tempi di attesa potrebbero esser molto lunghi in una query progettata per restituire molti dati. E’ possibile eseguire la query usando l’icona apposita oppure premendo il tasto F4 per avere un’anteprima dei dati sopra lo schema della query.

In questo modo sarà possibile scorrere i risultati dell’operazione e apportare le modifiche necessarie per adattarla ai risultati sperati. Al termine dell’operazione sarà possibile chiudere la finestra e tornare alla finestra principale di OpenOffice.

La ricerca salvata adesso sarà riportata nella sezione ricerche e verrà salvata nel database OpenOffice, non in remoto. Con un semplice doppio clic sarà possibile aprirla e visualizzare i dati restituiti o creare nuove query o report su tali dati.


Esportazione di una tabella su un altro database

Data la relativa difficoltà di operare su database remoti può essere conveniente esportare i dati di una o più tabelle remote in un database separato, locale e non collegato. L’operazione è unidirezionale e non consentirà l’inversa copia dal database locale a quello remoto sul server.

Per esportare basterà aprire un altro database non collegato, selezionare una tabella da esportare, fare click col tasto destro e scegliere Copia, quindi spostarsi all’altro database locale e sempre nella sezione Tabelle fare tasto destro, scegliere Incolla e verrà avviata la procedura guidata di importazione.

La prima fase della procedura chiederà il nome della tabella da creare e la scelta se ricreare la tabella con inclusi anche i dati contenuti (Definizione e dati) o la sola struttura vuota senza dati (Definizione) o aggiungere i dati della tabella di origine ad una tabella già esistente (Aggiungi dati). La scelta Come vista tabella non è utilizzabile con tabelle collegate. Infine sarà possibile assegnare un campo come chiave primaria della tabella, sia esso nuovo o già esistente.

Procedendo con Avanti saranno richiesti i campi da importare, possono essere tutti o solo alcuni interessati, semplicemente sfruttando i pulsanti centrali è possibile portare o togliere da destra i campi da assegnare. Quelli sulla destra alla fine saranno quelli che verranno importati. Al termine procedere con Avanti.

L’ultima scelta nella procedura di importazione consentirà di definire il formato di ciascun campo che viene importato, il tipo, il nome e la lunghezza dei suoi dati. E’ possibile concludere l’importazione cliccando su Crea.

Tuttavia se in precedenza non è stata definita una chiave prima ci verrà nuovamente segnalata l’assenza e potremo decidere se proseguire con questa scelta o crearne una nuova. La risposta a questa domanda conclude l’operazione, dovremo solo attendere l’importazione dei dati dalla tabella remota alla nuova tabella creata sul secondo database.


Tutte le operazioni viste qui possono essere utilizzate con qualsiasi altro driver ODBC, basta che sia configurato un DSN perché OpenOffice possa utilizzarlo e collegarsi alla fonte dati indicata.

Allo stato attuale OpenOffice 2.3 consente di fare operazioni sui database remoti ma purtroppo con particolare lentezza, non dovuta tanto al trasferimento dei dati ma all’elaborazione interna per l’apertura delle tabelle. Tuttavia collegando o importando i dati all’interno di un altro database è possibile elaborarli mediante OpenOffice Calc, il foglio di calcolo, sicuramente più avanzato e sviluppato della parte database.

Speriamo che le prossime versioni migliorino questi aspetti di lentezza e forniscano qualche funzionalità in più sull’uso delle tabelle collegate.

  1. Il gatto
    31 ottobre 2008 alle 20:57

    Bel lavoro complimenti

  2. mauri300856
    23 febbraio 2009 alle 22:48

    Ciao a tutti.
    Grazie prima di tutto a chi ha redatto questo articolo.
    Avrei però da sottoporre un problema che riguarda odbc con as400 + query (da excel) da eseguire con OO Calc.
    In breve in Windows ho una query creata in excel (suffisso .dqy) che puntando a un odbc riesce a estrarre dati da un as/400.

    In ubuntu ho installato OO, ho installato Client access (seguendo le istruzioni di un altro vostro articolo), ho configurato l’odbc che punta all’as/400, ho copiato la query, ma non riesco a farla funzionare in Calc perchè se apro (opzione Open) in calc la query vedo il contenuto (select…), ma non mi parte l’operazione di estrazione dei dati.

    Potete suggerirmi la sequenza di operazioni da fare in OO?
    Ringrazio tutti in anticipo.

    • 23 febbraio 2009 alle 23:38

      semplicemente calc non utilizza i files di query dpy, a cosa ti serve? non puoi usare l’importazione normale?

  3. mauri300856
    24 febbraio 2009 alle 14:02

    Ciao.

    Grazie per aver risposto.
    Purtroppo non posso cambiare modalità perchè sto facendo un test di comparazione tra il mondo windows che opera in azienda e ubuntu.
    Abbiamo centinaia di Query di questo tipo e non posso cambiarle: in effetti ho copiato semplicemente le query da un modo all’altro sperando che OO supportasse le stesse funzionalità.

    Pensi proprio che non si possa fare nulla?

    Grazie comunque.

  4. 24 febbraio 2009 alle 15:59

    non credo proprio si possa far qualcosa

    i files dqy non sono nemmeno files di excel ma del query, un programma a parte che non esiste su openoffice

    dovresti ricrearti tutte le query nel modo previsto da openoffice, al limite copiando il codice sql
    ciao

  5. 10 marzo 2012 alle 7:52

    Ciao,
    ho provato a realizzare una connessione odbc con Base su un databse db2 utilizzando un DSN di sistema. Non ho seguito la vostra procedura perché non la conoscevo, ahimé. Di fatto Base ha aperto tutto il ramo di cartelle e tabelle presenti in db2 e, in qualche modo che non so spiegare, l’ha modificato. Occorre dire che non sapevo che il mio utente di sistema avesse i permessi di lettura e scrittura su db2. La mia intenzione era di fare una query da una sola tabella di db2. Pensavo che la procedura fosse simile a quella seguita con Microsoft Query. Di fatto, Base ha permesso a me – semplice utente di una rete aziendale – di modificare il ramo delle tabelle su db2. Pazzesco. L’amministratore di sistema dice che le tabelle non si sono modificate, però aprendo il DSN da Microsoft Query, ora il ramo delle tabelle è incompleto – non compaiono più i campi. Cosa può essere successo? Ripeto, non ho seguito la vostra procedura e in apertura del database ho cliccato su Tabelle, ho scelto la tabella da cui fare la Query e stop.

  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: