Utenti Windows e macOS
I programmi riportati in questa pagina sono stati concepiti per il S.O. Windows.
Gli utenti Mac OS X per poter eseguire con successo gli gli stessi programmi devono apportare la modifica riportata di seguito.
Sostituire l'istruzione
db_file = r"C:\SQLite\db\comuni\comuni.db"
con
from pathlib import Path
home = str(Path.home())
db_file = home + "/SQLite/db/comuni/comuni.db"
Fetch
In alcuni casi può essere necessario limitare il numero di record estratti dalla query (fetch), ed operare in ciclo come illustra il seguente caso:
Esempio:
Codice sorgente
import sqlite3
from sqlite3 import Error
db_file = r"C:\sqlite\db\comuni\comuni.db"
try:
conn = sqlite3.connect("file:"+db_file+"?mode=rw", uri=True)
print("Connessione a", db_file, "avvenuta correttamente\n")
except Error as e:
print("Errore: ", e)
exit(1)
comune = input("Inserisci solo le prime lettere del nome di un comune italiano (es. Torre): ")
sql_query = """
SELECT Comuni.Denominazione, Province.Denominazione,
Regioni.Denominazione
FROM Comuni, Province, Regioni
WHERE Comuni.ProvinciaID = Province.ProvinciaID AND
Province.regioneID = Regioni.RegioneID AND
Comuni.Denominazione LIKE ? COLLATE NOCASE;
"""
try:
c = conn.cursor()
c.execute(sql_query, (comune+"%",))
except Error as e:
print("Errore *****", e)
conn.close()
exit(1)
size = 10
righe = c.fetchmany(size)
ciclo = ''
while len(righe) > 0 and ciclo != 'q':
for riga in righe:
print(riga[0], riga[1], riga[2])
righe = c.fetchmany(size)
if len(righe) > 0:
ciclo = input("-------->invio per continuare (q per terminare)")
conn.close()
Note:
L'istruzione
righe=c.fetchmany(size)
limita il numero di record restituiti dall'istruzione di fetch.
Ripetendo l'istruzione saranno restituiti altri record selezionati dalla SELECT.
Sito: 7ecnologie
Sezione: 09. Python
Capitolo: 02. Introduzione a Python
Paragrafo: 03. Query "voluminose"
Indice dei capitoli: 00. Risorse - 01. Ambiente di sviluppo - 02. Introduzione a Python - 03. Accesso al DB - 04. La libreria tkinter - 05. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Primi passi - 02. Query parametrizzate - 03. Query "voluminose" - 04. Inserimento di record