Apuntes_Python/01_curso/Modulo_4/4-3c_cursores.py
2022-12-24 22:41:20 -03:00

80 lines
2.3 KiB
Python

"""
CURSORES
Estructura de contról, usada para recorrer los registros (y potencial
el procesamiento) de los registros del resultado de una consulta.
Metodos pricipales
Execute:
Ejecuta una consulta SQL, puede estar parametrizada.
Soporta todos los tipods de 'playholders' para reemplazo
por variables. Parametros (?) y playjolders con nombre.
Execute Many:
Ejecuta un conjunto de parametros
personalizados.
Execute Script:
Ejecuta múltiples consultas. Ejecuta un commit
antes.
Fetchone:
Extrae la siguiente fila del conjunto resultado de la consulta
Devuelve una secuencia, o none si no quedan datos.
Fetchmany:
Extrae el sgte. conjunto de filas de la respuesta, devolviendo
una lista, Si no hay datos, devuelve una lista vacía.
Se especifica el nro de filas a extraer o por defecto toma el
valor de la variable 'array size' del cursor.
Fetchall:
Extrae todas las filas que quedan "sin consumir", en el conjunto
resultado de la consulta. Devuelve una lista.
Close:
Cierra el cursor, queda inutilizado, Se levanta una excepción
si se intenta usar (ProgrammingError).
Atributo Connection:
Solo lectura, provee la conexión a la base de datos utilizada
por el cursor.
ej.
"""
import sqlite3
# Conexión a la base de datos
conn = sqlite3.connect(":memory:")
# Cursor
cursor = conn.cursor()
# Crear tabla
cursor.execute("""CREATE TABLE moneda
(ID integer primary key, nombre text, simbolo text)""")
# Insertar datos de monedas
cursor.execute("INSERT INTO moneda VALUES (1, 'Peso (CLP)', '$')")
cursor.execute("INSERT INTO moneda VALUES (2, 'Dólar (USD)', 'U$')")
# Guardar cambios
conn.commit()
# Consultar monedas
query = "SELECT * FROM moneda"
print("Fetch one:")
# Obtener la respuesta (filas)
monedas = cursor.execute(query).fetchone()
print(monedas)
print(cursor.fetchone())
print(cursor.fetchone())
print("Fetch all:")
monedas = cursor.execute(query).fetchall()
print(monedas)
conn.close()