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

Nahuel Ambrosini ambro17.1 en gmail.com
Mie Ago 16 14:20:44 ART 2017


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/
20170816/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.gmail.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.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/
20170816/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
*****************************************
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170816/1ce0a65e/attachment-0001.html>


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