¿Cómo utilizar la función count () de MySQL en QT?

Quiero obtener el número total de filas en una tabla. ¿Cómo puedo conseguir esto?

Escribí el código de la siguiente manera:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("Dictionary");
db.setUserName("root");
db.setPassword("cinesoft");
bool ok = db.open();

int ID;
//SELECT COUNT(*) FROM icecream
QString IDnosql="SELECT * FROM Dictionary.TABLE_ENGLISH";

if(ok)
{
    QSqlQuery IDquery(db);
    IDquery.prepare(IDnosql);
    int Id=IDquery.numRowsAffected();
    IDquery.exec();

    // int Id=IDquery.numRowsAffected();
    QMessageBox::information(0,"sucess",QString::number(Id));
}

Yo uso el comando de conteo. Quiero obtener el número total de filas en mi tabla y almacenarlo en una variable entera.

preguntado el 08 de noviembre de 11 a las 10:11

4 Respuestas

Puedes preparar un QSqlQuery con COUNT mando:

 QSqlQuery q;
 q.prepare(QString("SELECT COUNT (*) FROM %1").arg(tableName));
 q.exec();
 int rows= 0;
 if (q.next()) {
        rows= q.value(0).toInt();
 }

Consulta QSqlQuery para más detalles

respondido 08 nov., 11:14

¿Por qué no usas la consulta? SELECT COUNT(*) from Dictionary.TABLE_ENGLISH - esto le dará el número de filas en la tabla. Luego, obtenga este valor del conjunto de resultados y guárdelo en una variable entera.

respondido 08 nov., 11:14

Cuando usa una declaración COUNT, puede usar QSqlQuery :: value (int index) como cuando selecciona un solo valor:

QString IDnosql="SELECT COUNT( * ) FROM Dictionary.TABLE_ENGLISH";

if(ok)
{
    QSqlQuery IDquery(db);
    IDquery.prepare(IDnosql);

    if( !IDquery.exec() )
    {
        // TODO: perform error handling here!
    }
    if( !IDquery.next() )
    {
        // TODO: Error handling: Query did not return a result (no row, which should not be possible when using a count statement as you would always get 1 row)
    }

    int Id = IDquery.value( 0 ).toInt();

    QMessageBox::information(0,"sucess",QString::number(Id));

}

respondido 08 nov., 11:15

Para obtener el número total de filas en una tabla A tu simplemente

SELECT count(*) from A;

Entonces necesitas convertir el resultado a un número entero.

respondido 08 nov., 11:14

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.