[pyar] COMO HACER UN UPDATE DESDE PYQT5

Leonel . leonelmalon en gmail.com
Mie Ago 23 08:35:42 ART 2017


Hola, el problema lo tenés en esta línea:

objCursor.execute("UPDATE usuarios SET nombre = *nombrenuevo*, salario =
*salarionuevo* WHERE identificacion = *iden*")

Esos valores los tenés que formatear, algo así:


objCursor.execute("UPDATE usuarios SET nombre = '*{nombrenuevo**}'*,
salario = *{salarionuevo}* WHERE identificacion =
*{iden**}*".formato(nombrenuevo=nombrenuevo,
salarionuevo=salarionuevo, identidad=iden))

O algo así,


objCursor.execute("UPDATE usuarios SET nombre = *'%s'*, salario = *%s* WHERE
identificacion = *%s*" % (nombrenuevo, salarionuevo, iden))

no sé cuál se recomienda en estos casos, también puede haber un formateado
por parte de pyodbc con '?' y pasando los valores como argumentos en la
función execute del cursor, pero no estoy seguro.

Alguien que me corrija por las dudas..
PD: no te olvides las comillas simples en nombrenuevo.

Saludos



El 22 ago. 2017 21:42, "Roberto Matarrita" <rmatarria en gmail.com> escribió:

> Este es el código que tengo. Parece que nombrenuevo, salario nuevo no son
> aceptados por python de esa forma, incluso iden. Ya que el update se va por
> el lado de error.
> Acepto sugerencias.
>
>    def Modificar(identificacion,nombre):
>         try:
>             cadenaconexcion="host='localhost' dbname='municipal'
> user='postgres' password='Administra8080'"
>             obj=psycopg2.connect(cadenaconexcion)
>             objCursor=obj.cursor()
>
>
>             estado = self.db.open()
>
>             if estado == False:
>                QMessageBox.warning(self, "Error",
> self.db.lastError().text(), QMessageBox.Discard)
>             else:
>
>               nombrenuevo = self.nombre.text()
>               iden                = self.identifica.text()
>               salarionuevo  = self.salario.text()
>
>               objCursor.execute("UPDATE usuarios SET nombre = nombrenuevo,
> salario = salarionuevo WHERE identificacion = iden")
>               obj.commit()
>
>         except :
>             print ("Datos no Actualizados")
>             print(self.nombre.text())
>             obj.rollback()
>             objCursor.close()
>             obj.close()
>
> Roberto
> Costa Rica.
>
> El 22 de agosto de 2017, 9:18, Eduardo Rizzolo <fullpaint en pinturas-
> misioneras.com.ar> escribió:
>
>> *Hola sin los datos de la tabla es medio complicado orientarte, pero
>> sintacticamente hay 2 cosas para ver*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> * "UPDATE usuarios set nombrenuevo= nombre, salario=salarionuevo where
>> identificacion = 5" El nombre del campo supongo es nombre. Y el nombre
>> nuevo entre comillas simples... "UPDATE usuarios set nombre= 'nombrenuevo',
>> salario=salarionuevo where identificacion = 5" Y supuestamente
>> identificacion es el ID UNICO. Se supone q existe (el 5), porq es un
>> UPDATE, sino tenes que hacer un INSERT... ...Y no podes repetir el ID
>> UNICO. El ID UNICO puede aparte hacerse AUTOINCREMENT, se incrementa solo
>> en cada INSERT. Para tomar ultimo ID UNICO, hay un comando SQL que te
>> indica en una consulta cual fue el ULTIMO ID ASIGNADO. Algunas cosillas
>> para tener en cuenta... Espero te sea util Edu On Tue, 22 Aug 2017 00:33:23
>> -0600, Roberto Matarrita wrote*
>> > Buenas noches. Tengo una forma con los campos identificacion, nombre,
>> salario. Esta ingresa los datos correctamente.
>> >
>> > Pero si deseo actualizar el nombre o el salio no puedo hacerlo. He
>> buscado documentación de como hacer un Update, desde PYQT5,
>> > pero no la he podido encontrar.
>> >
>> > Si alguien me puede decir como hacer el update, se los agradeceria.
>> >
>> > objCursor.execute("UPDATE usuarios set nombrenuevo= nombre,
>> salario=salarionuevo where identificacion = 5")
>> > Parece que de esta forma no funciona.
>> >
>> > Mucho agradecería la ayuda.
>> >
>> > Roberto
>> > Costa Rica.
>>
>>
>> --
>> Eduardo Rizzolo
>> Eldorado, Misiones Argentina
>> INF 0023
>> Linux Counter 518438
>> Correo principal:fullpaint en pinturas-misioneras.com.ar
>> Correo Secundario:fullpaint en gmail.com
>> skype:fullpaint1
>> www.creacionistas.com -> Que lindo cuentito nos contaron!!
>> http://video.google.es/videoplay?docid=5201456816857396330&hl=es
>> www.puertosur.org
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170823/b13417e1/attachment-0001.html>


Más información sobre la lista de distribución pyar