Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/06/2012, 03:11
jugivi
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Error 'int' object does not supporting...

Buenos dias, tengo un problema con Python,

Lo que pretendo hacer es algo muy sencillo...

Aceptar un número en la consola
buscar en una tabla un registro con este número
si lo encuentra
sumar 1 a un contador
actualizar
si no lo encuentra
grabar un nuevo registro

el campo de la base de datos que debe recibir el número es integer.

El error que me da es en el momento de hacer el Select y me pone
'int' object does not supporting indexing

El código escrito que tengo es:

Código python:
Ver original
  1. def actualizar_numero(numero_entrada):
  2.     try:  
  3.         cur=cn.cursor()
  4.        
  5.         SQL = """SELECT * FROM tbl_numeros WHERE numero = %s"""
  6.         data = (numero_entrada)
  7.         cur.execute(SQL, data)
  8.        
  9.         filas = cur.fetchone() #selecciona en fila el registro que cumple la condicion
  10.         if filas:
  11.             numero_id, numero, veces = filas # extraer los campos
  12.             veces = veces + 1
  13.             update_numero(numero_id, veces)        
  14.         else:
  15.             #print "no encontrado registro en la tabla tbl_numeros"
  16.             insertar_numero(numero_entrada)
  17.         cur.close()
  18.     except Exception, e:
  19.         cur.close()
  20.         print "select erroneo en la tabla tbl_numero", e
  21. #
  22. def update_numero(numero_id, veces):
  23.     try:
  24.         cur = cn.cursor()
  25.         SQL = """UPDATE tbl_numeros
  26.                    SET veces = %s
  27.                    WHERE numero_id = %s"""
  28.         data = (veces, numero_id)
  29.         cur.execute(SQL, data)
  30.     except Exception, e:
  31.         print "Error en update tabla tbl_numeros", e
  32.         cur.close()
  33. #
  34. def insertar_numero(numero_entrada):
  35.     try:
  36.         cur=cn.cursor()
  37.         SQL = """INSERT INTO tbl_numeros (numero, veces)  
  38.            VALUES (%s,%s);"""
  39.         data = (numero_entrada, 1)
  40.         cur.execute(SQL, data)
  41.     except Exception, e:
  42.         print "mal insert en tabla tbl_numeros", e
  43.         cur.close()
  44.        
  45. ##################################################
  46. #               Inicio
  47. ##################################################
  48.  
  49.  
  50. import psycopg2
  51. global cn
  52.  
  53. #conexion a la base de datos
  54. cn = psycopg2.connect("host=localhost dbname=frx_senyales_precision_H user=postgres password=*******")
  55.  
  56. numero_entrada = int(raw_input("Dame un numero: "))            
  57.  
  58. actualizar_numero(numero_entrada)
  59. cn.commit()
  60. print "fin proceso..."



Utilizo Python, Psycopg2 y Postgresql

¿alguien puede aclararme que pasa?.

Gracias

Última edición por AlvaroG; 11/06/2012 a las 07:43 Razón: arreglar coloreado de código