[pyar] COMO HACER UN UPDATE DESDE PYQT5
Roberto Matarrita
rmatarria en gmail.com
Mie Ago 23 14:00:45 ART 2017
Gracias Leonel. Me dieron las tres de la madrugada haciendo pruebas de todo
tipo ayer y alfin lo logré, ya aprendí. La forma en que lo describes es
como me funcionó, especialmente el segundo caso. Voy a probar también la
otra forma que dices a ver que resultados da y te aviso
Gracias
Roberto
Costa Rica
El 23/8/2017 5:36 a. m., "Leonel ." <leonelmalon en gmail.com> escribió:
> 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
>>
>
> _______________________________________________
> 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/c5d4d991/attachment.html>
Más información sobre la lista de distribución pyar