[pyar] COMO SABER SI UNA CONSULTA SQL EN PYTHON ES EFECTIVA

Roberto Matarrita rmatarria en gmail.com
Mie Ago 16 14:31:16 ART 2017


Gracias Nahuel, voy a probar y le aviso como me fue.

Roberto
Costa Rica.

El 16 de agosto de 2017, 11:20, Nahuel Ambrosini <ambro17.1 en gmail.com>
escribió:

> Existe el método size() en la clase SQLQuery que hace exactamente eso. Por
> lo que leí acá ( https://forum.qt.io/topic/12901/count-qsqlquery-results/4)
> count tiene problemas con las bases de datos que no devuelven el número
> de rows del resultSet, si no me equivoco sqlite te daría problemas.
>
> La idea sería:
> If consulta.size() >0 {
>  While(query. Next() {
>                //tu código
>       }
> }
> Else {
>     //no encontré nada
> }
>
>
> Notá que query.next devuelve el *primer*  registro cuando es llamada por
> primera vez con lo cual no es necesario leer y después empezar a iterar.
> Saludos
>
> El 16 ago. 2017 1:18 PM, <pyar-request en python.org.ar> escribió:
>
> Envíe los mensajes para la lista pyar a
>         pyar en python.org.ar
>
> Para subscribirse o anular su subscripción a través de la WEB
>         http://listas.python.org.ar/listinfo/pyar
>
> O por correo electrónico, enviando un mensaje con el texto "help" en
> el asunto (subject) o en el cuerpo a:
>         pyar-request en python.org.ar
>
> Puede contactar con el responsable de la lista escribiendo a:
>         pyar-owner en python.org.ar
>
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of pyar digest...". Además, por favor, incluya en la
> respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
>
>
> Asuntos del día:
>
>    1. Re: COMO SABER SI UNA CONSULTA SQL EN PYTHON ES EFECTIVA
>       (Roberto Matarrita)
>    2. Re: COMO SABER SI UNA CONSULTA SQL EN PYTHON ES EFECTIVA
>       (Roberto Matarrita)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 16 Aug 2017 10:16:50 -0600
> From: Roberto Matarrita <rmatarria en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: Re: [pyar] COMO SABER SI UNA CONSULTA SQL EN PYTHON ES
>         EFECTIVA
> Message-ID:
>         <CA+1ujixcU59SarcvVhuqmim=PzyZF=60CB_8QYWT8xLU_yRM-w en mail.
> gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Te comento Andrés.
> No se como se usa el querycount(), tal ves un ejemplo.
>
> El asunto es el siguiente.
> Tengo una forma hecha en PYQT5, con tres campos, Identificación, Nombre,
> Edad.
> La idea es digitar la identificación y que el sistema me traiga la
> información y me la muestre en los campos, cosa que si dígito un campo
> existente el proceso me trae los datos correctos. El problema lo tengo
> cuando dígito un código que no existe. El sistema me muestra True y debe
> ser False y nunca puedo mostrar el mensaje de que Datos no Existen.
> desconozco porque si un dato no existe, aun así muestra como si existiera.
>
> Espero haber explicado bien y si no le publico todo el código.
>
> El código esta en Python 3.5.
>
> Gracias
> Roberto
> Costa Rica.
>
> El 16 de agosto de 2017, 10:04, Andrés Ramírez <
> andres.ramirez.miori en gmail.com> escribió:
>
> > Sin conocer lo que está usando parecería que deberías hacer algo del tipo
> > query.count()
> >
> > El 16 ago. 2017 12:56 PM, "Roberto Matarrita" <rmatarria en gmail.com>
> > escribió:
> >
> >> Esta es la forma de como lo estoy haciendo.
> >>
> >> def Consultar2(self):
> >>       llave = str(self.identificacion.text())
> >>       sql = ("SELECT * FROM usuarios where id
> >> ="+self.identificacion.text())
> >>
> >>
> >>       query = QSqlQuery(sql)
> >>
> >>       consulta = QSqlQuery()
> >>       consulta.prepare(sql)
> >>       consulta.bindValue(":ID ",id)
> >>
> >>       estado = consulta.exec_()
> >>
> >>       if estado == True:
> >>           idatos = self.identificacion.text()
> >>           nombre = self.nombre.text()
> >>           edad   = self.edad.text()
> >>
> >>          #Ciclo para mostrar los datos en pantalla, por si se trae más
> de
> >> una fila.
> >>           while query.next():
> >>
> >>              ide        = QTableWidgetItem(str(query.value(0)))
> >>              nombre = QTableWidgetItem(str(query.value(1)))
> >>              edad     = QTableWidgetItem(str(query.value(2)))
> >>              self.identificacion.setText(str(query.value(0)))
> >>              self.nombre.setText(query.value(1))
> >>              self.nombreaux.setText(query.value(1))
> >>              self.edad.setText(str(query.value(2)))
> >>             QMessageBox.information(self,"Consulta Datos
> >> Correcta.","Validacion Correcta",QMessageBox.Discard)
> >>
> >>       else:
> >>         QMessageBox.information(self,"Dato No Encontrado.","Validacion
> >> Incorrecta",QMessageBox.Discard)
> >>
> >>
> >> El 16 de agosto de 2017, 4:52, Maxi <maxirobaina en gmail.com> escribió:
> >>
> >>>
> >>> El 16/08/2017 01:06, "Roberto Matarrita" <rmatarria en gmail.com>
> escribió:
> >>> >
> >>> > Buenas noches.
> >>> >
> >>> > Estoy utilizando Python 3.5 y PYQT5.
> >>> >
> >>> > Necesito saber cuando una consulta sql no trae información para
> >>> mostrar un mensaje de Datos no Encontrados.
> >>> >
> >>> > Lo hago utilizando un IF, pero no me da los resultado que necesito.
> >>> >
> >>> Podes poner un ejemplo de como lo estás haciendo?
> >>>
> >>> Saludos
> >>>
> >>> _______________________________________________
> >>> 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/2017
> 0816/509bb030/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 16 Aug 2017 10:18:43 -0600
> From: Roberto Matarrita <rmatarria en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: Re: [pyar] COMO SABER SI UNA CONSULTA SQL EN PYTHON ES
>         EFECTIVA
> Message-ID:
>         <CA+1ujiye+jXLbUpCZdT7_-Qr7va-dBQz33JZAa9L9QQWSR+X6g en mail.gm
> ail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Voy a revisar Andrés y te aviso como me fue.
>
> Ok
>
>
> El 16 de agosto de 2017, 10:09, Andrés Ramírez <
> andres.ramirez.miori en gmail.com> escribió:
>
> > Acá dicen usar el método size
> >
> > https://forum.qt.io/topic/12901/count-qsqlquery-results/2
> >
> > El 16 ago. 2017 1:04 PM, "Andrés Ramírez" <andres.ramirez.miori en gmail.co
> m>
> > escribió:
> >
> >> Sin conocer lo que está usando parecería que deberías hacer algo del
> tipo
> >> query.count()
> >>
> >> El 16 ago. 2017 12:56 PM, "Roberto Matarrita" <rmatarria en gmail.com>
> >> escribió:
> >>
> >>> Esta es la forma de como lo estoy haciendo.
> >>>
> >>> def Consultar2(self):
> >>>       llave = str(self.identificacion.text())
> >>>       sql = ("SELECT * FROM usuarios where id
> >>> ="+self.identificacion.text())
> >>>
> >>>
> >>>       query = QSqlQuery(sql)
> >>>
> >>>       consulta = QSqlQuery()
> >>>       consulta.prepare(sql)
> >>>       consulta.bindValue(":ID ",id)
> >>>
> >>>       estado = consulta.exec_()
> >>>
> >>>       if estado == True:
> >>>           idatos = self.identificacion.text()
> >>>           nombre = self.nombre.text()
> >>>           edad   = self.edad.text()
> >>>
> >>>          #Ciclo para mostrar los datos en pantalla, por si se trae más
> >>> de una fila.
> >>>           while query.next():
> >>>
> >>>              ide        = QTableWidgetItem(str(query.value(0)))
> >>>              nombre = QTableWidgetItem(str(query.value(1)))
> >>>              edad     = QTableWidgetItem(str(query.value(2)))
> >>>              self.identificacion.setText(str(query.value(0)))
> >>>              self.nombre.setText(query.value(1))
> >>>              self.nombreaux.setText(query.value(1))
> >>>              self.edad.setText(str(query.value(2)))
> >>>             QMessageBox.information(self,"Consulta Datos
> >>> Correcta.","Validacion Correcta",QMessageBox.Discard)
> >>>
> >>>       else:
> >>>         QMessageBox.information(self,"Dato No Encontrado.","Validacion
> >>> Incorrecta",QMessageBox.Discard)
> >>>
> >>>
> >>> El 16 de agosto de 2017, 4:52, Maxi <maxirobaina en gmail.com> escribió:
> >>>
> >>>>
> >>>> El 16/08/2017 01:06, "Roberto Matarrita" <rmatarria en gmail.com>
> >>>> escribió:
> >>>> >
> >>>> > Buenas noches.
> >>>> >
> >>>> > Estoy utilizando Python 3.5 y PYQT5.
> >>>> >
> >>>> > Necesito saber cuando una consulta sql no trae información para
> >>>> mostrar un mensaje de Datos no Encontrados.
> >>>> >
> >>>> > Lo hago utilizando un IF, pero no me da los resultado que necesito.
> >>>> >
> >>>> Podes poner un ejemplo de como lo estás haciendo?
> >>>>
> >>>> Saludos
> >>>>
> >>>> _______________________________________________
> >>>> 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/2017
> 0816/ced8ae21/attachment.html>
>
> ------------------------------
>
> Subject: Pié de página del digest
>
> _______________________________________________
> pyar mailing list
> pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>
> ------------------------------
>
> Fin de Resumen de pyar, Vol 90, Envío 23
> *****************************************
>
>
>
> _______________________________________________
> 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/20170816/fdf1b70b/attachment-0001.html>


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