Pagina 2 di 3

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 9 gennaio 2011, 1:45
da turi
ed ora??

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 9 gennaio 2011, 9:20
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.

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 9 gennaio 2011, 14:07
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

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 9 gennaio 2011, 16:01
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.

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 9 gennaio 2011, 18:30
da marcofoc
aggiungi una virgola dopo ViaPiazza, subito dopo.

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 1:58
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.

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 8:40
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..

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 14:04
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?

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 14:18
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..

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 20:37
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. :(

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 21:32
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.

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 10 gennaio 2011, 22:43
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:

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 7:22
da turi
si me li fa inserire...
lo so, ma che ci posso fare?? :(

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 8:47
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??

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 13:52
da turi
no e la selezione dei dati e' tratteggiata... appunto in sola lettura, e se vado in inserisci>record di dati... non è selezionabile.

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 13:54
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..

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 13:55
da turi
lo è :(

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 13:59
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..

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 14:05
da turi
fatto. neanche

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 14:43
da marcofoc
Bene, quindi il problema è generalizzato..
non dipende dal tuo copia e incolla..

Xergio, ci puoi aiutare?

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 14:52
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..

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 20:18
da turi
niente da fare :( invece sto aprendo un altro post per un'altra cosa, puoi vedere se riesci ad aiutarmi?

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 21:14
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?

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 11 gennaio 2011, 21:53
da turi
non ci avevo pensato... appena torna mio fratello ci provo.

Re: collegare Openoffice Base a database PostgreSql

Inviato: mercoledì 12 gennaio 2011, 13:41
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

Re: collegare Openoffice Base a database PostgreSql

Inviato: mercoledì 12 gennaio 2011, 14:36
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:

Re: collegare Openoffice Base a database PostgreSql

Inviato: domenica 16 gennaio 2011, 13:57
da turi
Naturalmente non mi sono dimenticato del tutorial, sto cercando un altro w7 per fare la prova :p

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 17 gennaio 2011, 18:07
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.

Re: collegare Openoffice Base a database PostgreSql

Inviato: lunedì 17 gennaio 2011, 22:31
da marcofoc
E' certamente questa la destinazione d'uso "naturale" di un database..
verifica che il server sia linux, poi l'installazione è semplicissima..

Re: collegare Openoffice Base a database PostgreSql

Inviato: martedì 18 gennaio 2011, 1:54
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.