elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Excepción al consultar base de datos SQLite [RESUELTO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Excepción al consultar base de datos SQLite [RESUELTO]  (Leído 3,153 veces)
MA40

Desconectado Desconectado

Mensajes: 252


--- I ❤ Ƀ ---


Ver Perfil WWW
[Python] Excepción al consultar base de datos SQLite [RESUELTO]
« 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.


« Última modificación: 23 Octubre 2016, 22:57 pm por MA40 » En línea

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python] Excepción al consultar base de datos SQLite
« Respuesta #1 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.  


En línea

MA40

Desconectado Desconectado

Mensajes: 252


--- I ❤ Ƀ ---


Ver Perfil WWW
Re: [Python] Excepción al consultar base de datos SQLite
« Respuesta #2 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.
« Última modificación: 24 Octubre 2016, 11:30 am por MA40 » En línea

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines