使用QT从MySQL返回SUM值时出错

时间:2019-06-18 17:51:00

标签: c++ mysql qt

考虑下表:

    ID       : int
    Quantity : smallint
    Price    : float(5,2)

我尝试运行以下 query

  

从测试GROUP BY ID中选择ID,SUM(数量*价格);

正如预期的那样,这已在MySQL Workbench中正确执行,但是在Qt中却没有发生。

表格中包含以下内容:

 | ID  | Quantity |  Price |
 |  1  |     3    |  1.00  |
 |  1  |     3    |  2.00  |
 |  2  |     3    |  3.00  |

并在Qt中使用以下实现:

    qDebug() << "Running...";
    QSqlQuery query(myDB);

    query.prepare(" SELECT ID, SUM(Quantity * Price) FROM test GROUP BY ID;");

    if(!query.exec())
        throw "Error";
    else{
        qDebug() << "Size: " << query.size();
        while(query.next()){
             qDebug() << query.value(0).toInt();
             qDebug() << query.value(1).toFloat();
        }
    }

    qDebug() << "End!";

结果是:

    Running...
    Size: 2
    End!

因此,即使返回的大小为2,该循环也永远不会运行。

奇怪的是,当我将 Price 变量更改为 int 时,问题消失了。

1 个答案:

答案 0 :(得分:0)

query.prepare(" SELECT ID, SUM(Quantity * Price) FROM teste GROUP BY ID;");

看起来像您键入表名'teste'