[Python] delimitatori testo in sqlite
Vittorio Zuccala'
vittorio.zuccala a gmail.com
Ven 5 Nov 2010 10:02:36 CET
Ok, allora facci vedere delle query che hai scritto.
Anche a questo proposito ti giro una delle viste che creo per un lavoro: se
devi fare qualcosa di dinamico ti conosiglio vivamente le viste.
Rimangono nel db sqlite anche quando il programma python termina e da python
basta fare un "SELECT * FROM VISTA"
Spero anche questo ti possa essere utile:
CREATE VIEW "AnticipiCorretta" AS
select QPR_AGENTE As AgenteCodice,
AC_RAG_SOCIALE_1 As AgenteRagioneSociale,
QPR_NUM_PRATICA Pratica,
CQREP_00_STATO As Stato,
CQREP_00_ATTRIBUTO As Attributo,
julianday(date('now'))-julianday(strftime("%Y-%m-%d",substr(QPRAN_DATA,1,4)
|| "-" || substr(QPRAN_DATA,5,2) || "-" || substr(QPRAN_DATA,7,2))) As
Giorni,
NETTO As Netto,
QPR_PRODOTTO As Prodotto,
prodotti.Descrizione As ProdottoDescrizione,
"C/D" As "C/D",
"P/P/P" As "P/P/P",
QPRAN_PROGRESSIVO As Progressivo,
ANTICIPO As Anticipo,
QPRAN_MODALITA As Modalita,
QPRAN_DATA_STORNO As DataStorno,
QPRAN_PROVENIENZA As Provenienza,
QPRAN_DESTINATARIO As Destinatario,
strftime("%Y-%m-%d",substr(QPRAN_DATA,1,4) || "-" ||
substr(QPRAN_DATA,5,2) || "-" || substr(QPRAN_DATA,7,2)) As DataErogazione
from anticipi
LEFT JOIN prodotti ON anticipi.QPR_Prodotto=prodotti.IDCodice
INNER JOIN cqrep000f ON
anticipi.QPR_NUM_Pratica=cqrep000f.CQREP_00_Pratica
WHERE
Stato <= 30 and
Attributo NOT LIKE 'RT' and
DataStorno = 0
ORDER BY AgenteCodice ASC, Giorni DESC
Il giorno 05 novembre 2010 09:57, Massimo Capanni <massimo.capanni a gmail.com
> ha scritto:
> non ho ancora scritto il codice python, proprio perche' prima mi ponevo
> questo problema scrivendo a mano le query direttamente su Sqlite, ma
> evidentemente stavo sbagliando approccio <:-)
>
> grazie del suggerimento.
>
>
> Il giorno 05 novembre 2010 09:44, Vittorio Zuccala' <
> vittorio.zuccala a gmail.com> ha scritto:
>
> Adoro sqlite soprattutto perchè ti permette di fare lavori semplici in modo
>> molto veloce!
>> Ad ogni modo...
>> Puoi fornirci il codice che utilizzi?
>> Personalmente non ho trovato questo problema nell'inserimento di dati.
>> Ti riporto parte di mio codice per leggere un CSV e riportarlo su un db
>> sqlite: magari può esserti utile.
>> Occhio: magari devi fare un decode come ti segnalo nel codice
>>
>> csv_reader = csv.reader(filecsv, delimiter=';', quotechar = '"')
>>
>> campi=string.split(cnf['tabelle'][i],"\n")
>> for j in range(len(campi)):
>> campo = re.search('"(.+)".+', campi[j])
>> if campo:
>> campi[j]=campo.group(1)
>> campi.pop(0) # Elimina il nome della tabella dai campi
>> campi.pop(-1) # Elimina la parentesi finale dai campi
>>
>>
>> print "Riempio la tabella %s" % i
>> k=0
>> p=1
>> inserisci="INSERT INTO %s VALUES(" % i
>> for row in csv_reader:
>> l=len(row)
>> for m in range(l):
>> row[m] = row[m].decode('latin1')
>>
>> if k == 0: # Controlla che i campi della tabella siano
>> uguali a quelli del CSV!!!!!!!!!!!
>> for c in range(len(row)):
>> if row[c] == campi[c]:
>> inserisci = "%s %s" % (inserisci,"?, ")
>> else:
>> print "DEVI CAMBIARE LA DEFINIZIONE IN
>> CONFIGURAZIONE DI CREAZIONE TABELLA %s" % row[c]
>> else:
>> dimensione=len(inserisci)-2
>> inserisci = inserisci[0:dimensione] # Inserendo "?, "
>> cancello l'ultima occorrenza di ", "
>> inserisci = "%s %s" % (inserisci, ")")
>> cur.execute(inserisci,row)
>> if k==300:
>> print "Ho finito di aggiungere %d record" % (k*p)
>> p=p+1
>> k=1
>> k=k+1
>>
>> con.commit()
>>
>>
>>
>> Il giorno 05 novembre 2010 09:33, Massimo Capanni <
>> massimo.capanni a gmail.com> ha scritto:
>>
>>> Buongiorno,
>>>
>>> forse e' una sciocchezza ma faccio lo stesso questa domanda:
>>> sto cercando di implementare un semplice database con Sqlite,
>>> e sto facendo alcune prove a mano direttamente con Sqlite stesso.
>>>
>>> Il database di prova contiene una tabella del genere:
>>>
>>> pippo (a integer primary key autoincrement, b text, c text);
>>>
>>> Cerco di inserire del testo a caso da qualche testo ma, se
>>> nella copia sono presenti doppi apici o singoli apici Sqlite
>>> mi comunica che non è correttamente identato. Secondo
>>> voi dovrei implementare un controllo dell'identazione degli
>>> apici prima dell'inserimento, con una funzione Python,
>>> oppure esiste una funzione che automaticamente risolve
>>> questo problema durante l'input?
>>>
>>> a presto,
>>>
>>> massimo
>>>
>>> _______________________________________________
>>> Python mailing list
>>> Python a lists.python.it
>>> http://lists.python.it/mailman/listinfo/python
>>>
>>>
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20101105/42818c72/attachment-0001.htm
Maggiori informazioni sulla lista
Python