---
title: M06 Accés a dades. Exemple prova final UF2.
tags: DAM, python, M6
---
<div style="width: 30%; margin-left: auto;">

</div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>
# M06 Accés a dades. Exemple prova final UF2.
## Pregunta 1:
Quan programem en Python, durant el procès de comunicació amb bases de dades SQL, utilitzem uns elements que anomenem _'cursors'_. Pots definir què és un cursor i com s'utilitza?
## Pregunta 2:
Al següent snippet de codi, hi ha una instrucció 'conn.commit()', però no es veu enlloc l'inici de la transacció. Si això no és correcte escriu el codi que corregeixi l'error i si no explica per què és correcte.
```python=
import sqlite3
conn=sqlite3.connect("bd1.db")
try:
conn.execute("""create table articles (
codi integer primary key autoincrement,
descripcio text,
preu real
)""")
print("s'ha creat la taula articles")
conn.execute("insert into articles(descripcio,preu) values (?, ?), ('Aigua',0.75)")
conn.commit()
except sqlite3.OperationalError:
print("La taula articles ja existeix")
```
## Pregunta 3:
Dibuixa el diagrama de classes del patró de disseny Abstract Factory.
## Pregunta 4:
Per què és important l'ús d'interfícies a la nostra aplicació per programar l'accés a la base de dades.
## Pregunta 5:
Què és un ORM?
## Pregunta 6:
Escriu una funció que passant-li com a paràmetre una connexió a una base de dades mysql, retorni els valors de la taula 'despeses':
```python=
def get_despeses(conn):
# Aquí el teu codi
return resultat