Foros del Web » Programando para Internet » Python »

Problemas de sintaxis con Update

Estas en el tema de Problemas de sintaxis con Update en el foro de Python en Foros del Web. Buenos dias, trabajo con Python y Psycopg2 para acceder a PostgreSQL, tengo un problema en un Update (supongo que es un problema de sintaxis...), ¿ ...
  #1 (permalink)  
Antiguo 23/12/2010, 10:24
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Problemas de sintaxis con Update

Buenos dias, trabajo con Python y Psycopg2 para acceder a PostgreSQL, tengo un problema en un Update (supongo que es un problema de sintaxis...), ¿ alguien puede ayudarme?

cn = psycopg2.connect("host=localhost dbname=Pruebas user=postgres password=xxxxxx")
cur = cn.cursor()
a="Queso"
cur.execute("UPDATE products SET name=%s WHERE product_no=6 '%s'" (a))
cn.commit()

El error que me da...

TypeError: 'str' object is not callable

Gracias.
  #2 (permalink)  
Antiguo 23/12/2010, 10:33
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Problemas de sintaxis con Update

Código Python:
Ver original
  1. cur.execute("UPDATE products SET name=%s WHERE product_no=6 '%s'" (a))
Te falto una coma.

Código Python:
Ver original
  1. cur.execute("UPDATE products SET name=%s WHERE product_no=6 '%s'", (a))
  #3 (permalink)  
Antiguo 23/12/2010, 10:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problemas de sintaxis con Update

Razpeitia, gracias por la respuesta, lo he probado tal como me has dicho pero ahora el mensaje es...

cur.execute("UPDATE products SET name=%s WHERE product_no=6 '%s'", (a))

TypeError: not all arguments converted during string formatting

¿puedes ayudarme?.
Gracias.
  #4 (permalink)  
Antiguo 23/12/2010, 12:34
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Problemas de sintaxis con Update

El ultimo %s lo tienes demás:
Código Python:
Ver original
  1. cur.execute("UPDATE products SET name=%s WHERE product_no=6", (a))
  #5 (permalink)  
Antiguo 23/12/2010, 13:08
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problemas de sintaxis con Update

Gracias, Razpeitia, pero me da el mismo error... ya no se que hacer.
  #6 (permalink)  
Antiguo 23/12/2010, 13:10
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problemas de sintaxis con Update

¿Es obligatorio en un Update poner todos los campos de la tabla?, lo digo porque la tabla tiene 5 campos y yo solo inteneto actualizar 1...
  #7 (permalink)  
Antiguo 23/12/2010, 14:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Problemas de sintaxis con Update

Se le envia una tupla, no un string
Código Python:
Ver original
  1. cur.execute("UPDATE products SET name=%s WHERE product_no=6", (a,))
Edito: No es necesario modificar todos los campos.
  #8 (permalink)  
Antiguo 24/12/2010, 03:41
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 14 años
Puntos: 3
Respuesta: Problemas de sintaxis con Update

¡¡ Muchas gracias !!, ahora si funcionó.

Etiquetas: sintaxis, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.