Foro de elhacker.net

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
  1. try:
  2.    cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))
  3. except:
  4.    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
  1. cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))
  2.  
lo cambiaría por:
Código
  1. cursor.execute("SELECT registro FROM tabla WHERE registro = ?", (valor_del_registro,))
  2.  


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
  1. try:
  2.    cursor.execute("""SELECT registro FROM tabla WHERE registro = ?""", (valor_del_registro,))
  3.    cursor.fetchone()[0]
  4. except:
  5.    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.