[pyar] COMO HACER UN UPDATE DESDE PYQT5

Roberto Matarrita rmatarria en gmail.com
Jue Ago 24 02:03:41 ART 2017


Excelente Francisco también me funcionó.
Me encontre esta otra que tambien me funciono.

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

Gracias por la ayuda. Ya me funciona bien la forma hace, insert, update,
delete y consultar datos ya que no pude encontrar como hacer esto en python
con pyqt5.

Roberto
Costa Rica.

El 23 de agosto de 2017, 16:23, Francisco Couzo <franciscouzo en gmail.com>
escribió:

> En ningún caso deberías usar format o el operador % cuando estás usando
> SQL, ya que podés ser víctima de una inyección SQL, para eso execute toma
> un segundo parametro, entonces te quedaría así:
>
> objCursor.execute("UPDATE usuarios SET nombre = %s, salario = %s WHERE
> identificacion = %s", (nombrenuevo, salarionuevo, iden))
>
> 2017-08-23 18:59 GMT-03:00 Leonel . <leonelmalon en gmail.com>:
>
>> Perfecto! Mira esta página [0] que te explica bien.
>>
>> [0] pyformat.info
>>
>> El 23 ago. 2017 14:01, "Roberto Matarrita" <rmatarria en gmail.com>
>> escribió:
>>
>>> 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
>>>>
>>>
>>> _______________________________________________
>>> 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/b35d2edd/attachment-0001.html>


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