Pagina 1 di 3

collegare Openoffice Base a database PostgreSql

Inviato: domenica 26 dicembre 2010, 22:10
da marcofoc
Con questo tutorial, impareremo:
1. Ad installare un server database PostgreSql nella nostra macchina
2. Predisporlo per un utilizzo dello stesso in rete
3. Salvare la base dati
4. Interfacciarvisi con Openoffice Base
5. Trasferire i dati da un database Openoffice Base al nuovo database attraverso uno script Python

La prima cosa da fare, è installare il server PostgreSql.
Su macchine Linux, è ovviamente presente nei repository. Basta cliccarci sopra e scaricare il pacchetto. Installate anche PgAdmin, che sarà l'interfaccia grafica che utilizzerete per amministrare il database
Per macchine Windows, basta andare sul sito, scaricare il pacchetto e installarlo.

D'ora in avanti, parlerò solo per utenze Linux. Se dovessero nascere problemi per utenze Windows, postatele. Le risolviamo man mano.

accedere al server sul database di prova (template1), al fine di impostare una password per l'utente già creato in automatico in fase di installazione: “postgres”. Senza questa procedura di impostazione di password, non si riuscirebbe ad accedere al server

Codice: Seleziona tutto

sudo -u postgres psql template1
si accede così al prompt di psql, attraverso il quale cambiamo l'user come sopra detto:

Codice: Seleziona tutto

ALTER USER postgres with PASSWORD 'password';
è importante che la password sia compresa fra apici (non “ ), e che alla fine del comando ci sia un punto e virgola. Solo se trova un ; l'interprete capisce che l'istruzione e finita e la può eseguire.
Fatto questo, usciamo dal prompt psql e torniamo al prompt ubuntu con la seguente istruzione

Codice: Seleziona tutto

\q;
visto che ora avremo una password da dare quando psql ce lo chiederà, possiamo iniziare con il creare un database:
sudo -u postgres createdb nomedatabase

Non possiamo ancora utilizzare il server: bisogna configurare i due file di configurazione Postgresql.
Apriamo con un editor di testi, i due file di configurazione principali:

Codice: Seleziona tutto

/etc/postgresql/8.4/main/postgresql.conf
/etc/postgresql/8.4/main/pg_hba.conf
il file postgresql.conf va modificato come vedete sotto, su listen_addresses (in modo che possa ricevere richieste da qualunque host, non solo il local)

e il file pg_hba, come segue:

Ora il server è impostato a livello di sicurezza ZERO: chiunque della rete lan vi si può collegare, senza dare password.. approfondiremo più avanti magari questo aspetto.

Ora il server è pronto per l'uso. Apriamo PgAdmin e iniziamo a creare la struttura per i dati.
Suggerisco di fare in modo che sia identica a quella del vecchio database, in modo da evitare problemi poi nel trasferimento dati (attenzione quindi ai vincoli, relazioni, nomi delle colonne, etc..)

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 28 dicembre 2010, 21:20
da turi
scusa ma sono molto, ma molto, inesperto..

come si inseriscono queste stringhe??

Codice: Seleziona tutto

accedere al server sul database di prova (template1), al fine di impostare una password per l'utente già creato in automatico in fase di installazione: “postgres”. Senza questa procedura di impostazione di password, non si riuscirebbe ad accedere al server
CODICE: SELEZIONA TUTTO   ESPANDI VISUALE
sudo -u postgres psql template1

si accede così al prompt di psql, attraverso il quale cambiamo l'user come sopra detto:
CODICE: SELEZIONA TUTTO   ESPANDI VISUALE
ALTER USER postgres with PASSWORD 'password';


P.S. uso windows.

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 28 dicembre 2010, 21:28
da marcofoc
Vedo che lavori su windows..
quindi inizia con fare il download del pacchetto ed installarlo.
Lascia perdere i comandi che ho postato sopra: sono per utenti Linux.

http://www.enterprisedb.com/join-dev-co ... ileid=1653

Re: collegare Openoffice Base a database PostgreSql

Inviato: sabato 1 gennaio 2011, 23:50
da turi
mi richiede una password durante il setup.. ma non capisco a quale possa essere... mi chiede la password per l'account postgres..
P.S. Auguri :)

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 2 gennaio 2011, 11:16
da marcofoc
è normale!
durante l'installazione, viene creato un nuovo utente: postgres. Questo è l'utente "amministratore" del database.
Dagli una password. A piacimento.

Tanti auguri anche a te.

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 2 gennaio 2011, 15:19
da turi
questo l'avevo intuito perchè mi chiede 2 volte pa passwd XD.. il problema è che non mi fa proseguire qualunque passwd metto :). mi dice che la passwd non è corretta... e se provo ad andare avanti senza inserirla mi dice che obbligatorio scegliere una password :S

Avevo installato la 9.0 prima e l'ho disinstallata per installare la tua... questo può centrare qualcosa...??

P.S. la passwd me la chiede anche se provo a reinstallare la 9.0

Re: collegare Openoffice Base a database PostgreSql

Inviato: mercoledì 5 gennaio 2011, 23:09
da turi
sono proprio sfortunato vero>??? :(

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 10:30
da marcofoc
No no, non è questione di fortuna.
E non è questione di versione di PostgreSQL.
Aspetta, scarico il file e provo ad installarlo.. ho qui una partizione Win qui apposta per ste cose..

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 11:06
da marcofoc
Allora, sono su Win e ho lancialo l'installazione.
Facciamo passo passo:
ti chiede l'installation directory: lascia quella di default
ti chiede la data directory: lascia quella di default
ti chiede la password per il superuser (chiamato postgres): danne una a tuo piacimento
ti chiede che come impostare l'ora del cluster: lascia quella di default locale

parte l'unpacking..

alla fine ti chiede se vuoi avviare Stackbuilder: serve per installare applicazioni aggiuntive: lascia perdere. Lo potrai rilanciare in futuro.

Bene, fatto:
ora su programmi troverai un nuovo collegamento "PostgreSQL 8.4"
All'interno di questo menu troverai vari comandi: quello che ti serve è PGAdmin: lancialo.
In alto a sx troverai un server già installato: "PostgreSQL 8.4 (localhost:5432)"
Lancialo: ti chiederà la password: dagli quella che hai impostato in sede di installazione.
All'interno troverai un database già inserito per default: postgres. Lascialo perdere.
Tu crea il tuo: mettiti sopra database e fai: crea nuovo. Dagli il nome e sei pronto.

Una ultima cosa:
devi configurare il server perchè possa ricevere richieste anche da altri pc della rete.
Vai su Risorse del Computer: C:\Programmi\PostgreSQL\8.4\data
All'interno di questa cartella trovi i due file (pg_hba.conf e postgresql.conf). Cambiali come da istruzioni sopra.

Il prossimo passo sarà collegare Openoffice al server.

Stop. Ritorno a Linux. Mi sono già venute fuori le pustole sulle dita! :D

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 12:45
da turi
qualunque password metto nel terzo step mi dice : "The password specified was incorrect. Please enter correct password for the postgres windows user account.".

Se la scio vuoto:"You must enter a password to continue".

P.S. so fare un'installazione XD XD XD

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 13:58
da turi
se qualcuno dovesse avere il mio stesso problema ho risolto cosi:
start > esegui > control userpasswords2

bisogna eliminare l'utente postgres... poi l'installazione va avanti..
il problema era causato dalla vecchia installazione di postgres che aveva lasciato l'utente ;)

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 14:12
da turi
P.S. sono a pari passo :)
Attendo news per la creazione della struttura.. :knock:

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 16:12
da marcofoc
Bene Turi!!
Allora, ora devi creare la struttura utilizzando PgAdmin, copiando quella già fatta con Openoffice.
Crea tutte le tabelle, utilizza gli stessi nomi colonna e via dicendo.

Intanto, per connettere Openoffice base al server, scarica l'estensione:
http://dba.openoffice.org/drivers/postg ... 0.7.6b.zip

Salvalo dove vuoi, poi apri un foglio writer, vai su Strumenti, Gestione estensioni, e carica il file zip (non occorre scompattarlo).
Poi chiudi tutti i file aperti che hai di Openoffice, e apri un nuovo database Base.
Vedi le immagini sotto.

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 18:37
da turi
ok... adesso... come creo la struttura della tabella in postgresql?

Re: collegare Openoffice Base a database PostgreSql

Inviato: giovedì 6 gennaio 2011, 23:35
da marcofoc
ora da PgAdmin inizia a crearti tutte le tabelle, cerca di tenere gli stessi nomi tabella e nomi colonna.
Una volta creata la struttura, inizieremo a trasferire i dati.
Non credo che tu voglia che io ti insegni a creare una tabella... si fa tutto a video, con PgAdmin: tabelle, relazioni, vincoli, etc..
Chiedimi sullo specifico, e ti risponderò.

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 1:49
da turi
Nello specifico: Da postgres dove vado per creare una nuova tabella con le relative colonne? XD

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 2:00
da turi
ok, sono andato nel database.. > schemi > public > tabella.
ho creato la tabella, vado per creare le colonne ma non c'è il tipo di dato di testo VARCHAR :crazy:

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 7:29
da marcofoc
a questo tipo corrisponde il "character varing".... anche qui puoi impostare il numero massimo di caratteri.

Senti, gli schemi:
in questo caso sei su quello creato in automatico: public.
Ne puoi creare ancora, se vuoi. Servono solo per dividere ed organizzare meglio le tabelle.. invece di averle tutte ammucchiate in un posto solo.
Puoi ad esempio crearti uno schema clienti, e uno fornitori.. e via dicendo..

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 13:07
da turi
appena faccio fine, quando creo nuovo database, si blocca. sono stato ad aspettare anche 10 minuti sperando si sbloccasse, ho provato più di una volta.. ma niente, rimane bloccato quando clicco su "fine" e salvo sul desktop.
Provo a riavviare.

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 13:14
da turi
ok risolto, anche se nell'ultima immagine non è fleggata, bisogna fleggare la password XD
Adesso quindi diamo quasi alla fine :p manca spostare i dati e creare il formulario no?

P.S. in "tabelle" (In base) mi spuntano tantissime tabelle :S

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 13:18
da turi
Forse ho capitooooooooooooooooo
da base vado in public, mi posiziono sopra la mia tabella e faccio copia incolla della tabella con i 4000 record che avevo prima.
e poi mi creo il formulario... giusto???

P.S. se entro nella tabella (da base) non mi da la possibilità di inserire nuovi record.

P.P.S. Mi dà problemi a copiare i boolean [Si/No]

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 16:17
da marcofoc
turi ha scritto:ok risolto, anche se nell'ultima immagine non è fleggata, bisogna fleggare la password XD
Cavolo, scusami!!
Avevo dato per scontato che il server non necessitasse il passaggio della password! Invece si!!

Aspetta, Turi.
PostgreSQL non credo ti permetta di fare copia e incolla di tabelle!!
Devi creare la struttura, poi facciamo un piccolo script in python e passiamo dentro i dati.

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 17:04
da turi
ah ok, allora attendo tue notizie, considera che già la struttura è fatta.. unico problema il boolean [Si/No] che non so com'è in postgresql.
P.S. non so cos'è Python. quindi fa come se fossi un bambino per spiegarmelo :lol:

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 17:22
da marcofoc
Python è un magnifico linguaggio di programmazione.
Stasera ti preparo lo script, intanto installati python:
http://www.python.org/ftp/python/2.7/python-2.7.msi
e il driver che permette a python di dialogare con postgres:
http://www.stickpeople.com/projects/pyt ... elease.exe

ci sentiamo stasera.

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 18:01
da turi
quando cerco di installare i driver mi dice che serve la versione 2.6 di python.
quella che mi hai dato tu è la 2.7 e nel sito non c'è la 2.6 :(

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 21:02
da marcofoc

Re: collegare Openoffice Base a database PostgreSql

Inviato: venerdì 7 gennaio 2011, 21:05
da marcofoc
Prima di fare lo script, devi estrarre i dati dalla tabella del database in un file calc, eliminare la prima riga di intestazione, e salvare il file in formato csv, utilizzando un carattere UNIVOCO per la separazione dei campi. Io di solito uso il "$", perchè so che nei miei dati non è mai presente.
Servirà poi allo script per splittare le colonne.

Re: collegare Openoffice Base a database PostgreSql

Inviato: sabato 8 gennaio 2011, 4:54
da turi
Altro problema:
1)Non so come si estraggono i dati dalla tabella del database in un file calc.
2) non so come si utilizza pylthon
3) Nelle colonne come si fa il boolean [Si/No](le caselle da fleggare) che non vadano in conflitto con postgresql?
Te l'ho detto, fai finta che sono un bimbo che non sa nulla :roll:

Re: collegare Openoffice Base a database PostgreSql

Inviato: sabato 8 gennaio 2011, 9:27
da marcofoc
Allora, per le colonne booleane.. non ti preoccupare. Problemi Zero.
Per python, nemmeno.

Estrazione dei dati:
apri un foglio in Calc, e premi F4 (sorgenti di dati).
Dovrebbe apparire il tuo vecchio database, fra le sorgenti disponibili.
Cerca la tua tabella, seleziona tutti i dati e trascinali sul foglio.
Apposto!
Ri-premi F4 così chiudi le sorgenti software!

Re: collegare Openoffice Base a database PostgreSql

Inviato: sabato 8 gennaio 2011, 15:03
da turi
Fatto e salvato in file cvs.. come separatore di campo messo anche io $ (che non lo uso mai) e poi c'era separatore (non mi ricordo cosa) che era " (viegolette-ho lasciato questo).