Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: MA40 en 23 Octubre 2016, 01:40 AM

Título: [Python] Excepción al consultar base de datos SQLite [RESUELTO]
Publicado por: MA40 en 23 Octubre 2016, 01:40 AM
Hola.

Al hacer una consulta a una base de datos SQLite de la siguiente forma:

Código (python) [Seleccionar]

try:
   cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))
except:
   hacer cualquier cosa


NUNCA, aunque el valor_del_registro no exista en la base de datos, se produce la excepción.

¿Qué estoy haciendo mal?

Un saludo.
Título: Re: [Python] Excepción al consultar base de datos SQLite
Publicado por: tincopasan en 23 Octubre 2016, 02:38 AM
¿será porque hay " triples en el código?
Código (python) [Seleccionar]

cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))

lo cambiaría por:
Código (python) [Seleccionar]

cursor.execute("SELECT registro FROM tabla WHERE registro = ?", (valor_del_registro,))
Título: Re: [Python] Excepción al consultar base de datos SQLite
Publicado por: MA40 en 23 Octubre 2016, 22:57 PM
Hola.

Ya he conseguido solucionar el problema; sería de esta forma:

Código (python) [Seleccionar]
try:
   cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))
   cursor.fetchone()[0]
except:
   hacer cualquier cosa


Yo lo interpreto de la siguiente forma: con hacer sólo una consulta mediante SELECT a la base de datos, no se genera la excepción; es necesario hacer alguna operación con el resultado obtenido para que sí se cree una excepción.

Un saludo.