collegare Openoffice Base a database PostgreSql

turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

ed ora??
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

Ora, attraverso Python, raccogliamo riga per riga i dati del file csv e li inseriamo nella tabella del nuovo database.

Codice: Seleziona tutto

import psycopg2
#questi sono i dati che autenticano e permettono la connessione al database
nomedb="tuodatabase"
host="localhost"
user="postgres"
password="tuapassword"

connessione="dbname='"+nomedb+"' host='"+host+"' user='"+user+"' password='"+password+"'"

connDB = psycopg2.connect(connessione) #apro la connessione
cur = connDB.cursor() #ottengo un cursore per poter lanciare le istruzioni

f = file("tuofile.csv", "r") #fa in modo che python trovi il file: metti
							 # il percorso completo
tutte = f.readlines()
for g in tutte:
    parti = g.split("$")
    
    colonna1 = parti[0]
    colonna2 = parti[1]
    # e via dicendo per tutte le colonne che interessano a te
     

    inserisci  = "INSERT INTO tuatabella (nomecolonna1, nomecolonna2) VALUES (%s, %s)"
    cur.execute(inserisci, (colonna1, colonna2))



connDB.commit()   # salvo i dati nel database
cur.close()		# chiudo il cursore
connDB.close()  # chiudo la connessione
Aprendo la idle, devi fare "Nuovo". Sulla finestra che si apre, incollare sto codice, modificarlo con i tuoi dati e a seconda delle tue esigenze (password, nomedatabase, nomi e quantità delle colonne etc).
E' molto propabile che ti dia qualche difficoltà all'inizio: ci sarà qualche dato che vedrà incongruente. Sistemeremo man mano che ti escono gli errori.
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

Tutto fatto, corretti i vari errori che mi dava e naturalmente modificati anche in pgadmin..
ma mi da, in rosso, quando eseguo lo script:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Python27\PretesseramentoPython", line 42, in <module>
    cur.execute(inserisci, (Cognome, Nome, Sesso, Indirizzo, N, Localita, Provincia, CAP, Data_nascita, Data_richiesta, Email, Cellulare, Nazionalita, Tessera_n, Anno_validita, Data_rilascio, Rinnovo, Note, ViaPiazza))
TypeError: not all arguments converted during string formatting
OpenOffice.org 3.3.0 su windows 7 e windows XP
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

marcofoc ha scritto:
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.

La possibilità di fare copia/incolla dei dati me la da solo che non mi fa inserire da base nuovi record.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

aggiungi una virgola dopo ViaPiazza, subito dopo.
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

Ho provveduto a disinstallare python, da stasera ogni volta che faccio run mi spunta schermata blu, tante scritte e si riavvia windows.
p.S. cmq anche mettendo la virgola nulla da fare, sicuro che senza questo script non si possa fare nulla?? facendo copia della tabella dalla tabella precedente alla tabella creata identica del database base collegata con postgresql???
a me le fa copiare solo che poi non ho la possibilità di inserire nuovi record.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

ma se copi e incolli, poi la tabella la ritrovi in PGAdmin?
Con questo script, adattando un attimo la cosa su eventuali errori (che di solito vengono emessi quando trova caselle vuote (NULL)), io trasferisco a manetta senza problemi.

Ps: piccolo consiglio: evita come la peste di dare nomi a tabelle e colonne usando maiuscole e minuscole insieme..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

modificata tabella in base, messo tutto minuscolo senza spazi o caratteri strani, creata struttura colonne in pgadmin identica, creato file cvs ma nulla... ancora mi da:

Traceback (most recent call last):
File "C:\Python27\PretesseramentoPython", line 41, in <module>
cur.execute(inserisci, (cognome, nome, sesso, indirizzo, n, localita, provincia, cap, datadinascita, datadirichiesta, email, cellulare, nazionalita, tesseran, annovalidita, datarilascio, rinnovo, note,))
TypeError: not all arguments converted during string formatting

P.S. ho levato via/piazza che aveva valori null..

Come dicevo prima non c'è la possibilità???
Come si vede se ci sono i dati in pgadmin dopo che faccio copia incolla direttamente da base?
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

turi ha scritto:Come si vede se ci sono i dati in pgadmin dopo che faccio copia incolla direttamente da base?
basta che clicchi con il dx sulla tabella e fai: Visualizza dati..
turi ha scritto:Traceback (most recent call last):
File "C:\Python27\PretesseramentoPython", line 41, in <module>
cur.execute(inserisci, (cognome, nome, sesso, indirizzo, n, localita, provincia, cap, datadinascita, datadirichiesta, email, cellulare, nazionalita, tesseran, annovalidita, datarilascio, rinnovo, note,))
TypeError: not all arguments converted during string formatting
Niente di problematico:
i dati che vanno buttati dentro PostgreSQL durante l'INSERT, devono essere di tipo stringa (poi, una volta dentro, PostgreSQL cambia da solo il tipo (es.: se butto dentro un "True", poi diventa un booleano True).
Quindi, il problema nasce dal fatto che durante l'estrazione dal CSV, qualche valore non è stringa.
Per ovviare a ciò, potresti forzare il cast così:

Codice: Seleziona tutto

colonna1 = str(parti[0])
Il problema potrebbe ancora non essere del tutto risolto.
Ti consiglio di mettere un print dentro il ciclo for, così vedi dove si blocca.
Aggiungi una riga con scritto:

Codice: Seleziona tutto

print colonna1, colonna2, eccetera..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

Non ti offendere ma non voglio più usare python, dinuovo schermata blu e riavvia..
cmq neanche con la forzatura fa nulla... sempre quell'errore. :(
OpenOffice.org 3.3.0 su windows 7 e windows XP
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

marcofoc ha scritto: basta che clicchi con il dx sulla tabella e fai: Visualizza dati..
Si si vedono i dati.
Il fatto è che da base non mi da la possibilità di effettuare nuovi inserimenti.
neanche facendo il formulario.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

riesci ad inserire nuovi dati da PgAdmin?
turi ha scritto:Non ti offendere ma non voglio più usare python, dinuovo schermata blu e riavvia..
che tristezza.. :crazy:
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

si me li fa inserire...
lo so, ma che ci posso fare?? :(
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

beh, pazienza!!
Sei comunque riuscito nel tuo intento: hai trasferito i dati!
Trovo molto molto strano che Base non ti lasci inserire nuovi record..
ma molto!!
verifica bene la cosa per favore!
Quando apri la tabella, sotto non viene fuori l'asterisco giallo che, se premuto, ti permette di inserire nuovo record??
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

no e la selezione dei dati e' tratteggiata... appunto in sola lettura, e se vado in inserisci>record di dati... non è selezionabile.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

incredibile.. io non ho mai fatto copia e incolla di una tabella.. e quindi non mi so come comportare..
fa una cosa:
vai in PgAdmin, e verifica in proprietà tabella: chi è il proprietario?
Deve essere postgres, il proprietario..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

lo è :(
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

fa una cosa per favore:
crea una tabella con pgadmin, metti delle colonne a caso..
poi vedi se da Base riesci ad inserirci i dati..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

fatto. neanche
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

Bene, quindi il problema è generalizzato..
non dipende dal tuo copia e incolla..

Xergio, ci puoi aiutare?
Non esistono buoni maestri senza buoni allievi...
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

prova a cancellare il file odb, e crearne un altro.. son 3 anni che uso Base così e non mi è mai capitata una cosa del genere..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

niente da fare :( invece sto aprendo un altro post per un'altra cosa, puoi vedere se riesci ad aiutarmi?
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

Si ok,
ma sta cosa deve andare risolta...
non può esistere una cosa del genere!
Senti qua, visto che abbiamo fatto tutto per poterlo utilizzare in rete..
hai provato a connetterti al database con un altro pc?
Magari con un altro sistema operativo?
Magari con un'altra versione di Openoffice?
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

non ci avevo pensato... appena torna mio fratello ci provo.
OpenOffice.org 3.3.0 su windows 7 e windows XP
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

adoro windows 7 ma dopo oggi inizierò ad odiarlo... anche tramite google ed il sito della microsoft non riesco a configurare la rete fra w7 e wxp grrrrr
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

turi ha scritto:adoro windows 7 ma dopo oggi inizierò ad odiarlo... anche tramite google ed il sito della microsoft non riesco a configurare la rete fra w7 e wxp grrrrr
:super:

:mrgreen:
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

Naturalmente non mi sono dimenticato del tutorial, sto cercando un altro w7 per fare la prova :p
OpenOffice.org 3.3.0 su windows 7 e windows XP
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

marco grazie per l'attesa, ho pensato, dato l'utilizzo che potrei fare del database, di installare postgresql in remoto. mi daresti qualche dritta???
Ho già un server (mi sembra linux) in modo tale che possa accedere da qualunque pc senza dover avere necessariamente postgresql installato nel pc.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Avatar utente
marcofoc
Messaggi: 235
Iscritto il: martedì 12 ottobre 2010, 16:48
Località: Arzignano (VI)
Contatta:

Re: collegare Openoffice Base a database PostgreSql

Messaggio da marcofoc »

E' certamente questa la destinazione d'uso "naturale" di un database..
verifica che il server sia linux, poi l'installazione è semplicissima..
Non esistono buoni maestri senza buoni allievi...
turi
Messaggi: 154
Iscritto il: sabato 4 dicembre 2010, 15:34

Re: collegare Openoffice Base a database PostgreSql

Messaggio da turi »

l'installazione è già fatta, nell'hosting è già installato.
ma se mettoin openoffice base come host=sito.web dbname=Nomedatabase non mi ci collega..
vorrei colelgare sia openoffice base che fare successivamente un form online che si collega sempre allo stesso database utilizzato da openoffice.
OpenOffice.org 3.3.0 su windows 7 e windows XP
Rispondi