Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 选择TINYINT列时QSqlQuery未给出正确的结果_C++_Mysql_Qt_Qsqlquery_Qsqldatabase - Fatal编程技术网

C++ 选择TINYINT列时QSqlQuery未给出正确的结果

C++ 选择TINYINT列时QSqlQuery未给出正确的结果,c++,mysql,qt,qsqlquery,qsqldatabase,C++,Mysql,Qt,Qsqlquery,Qsqldatabase,我有一个非常简单的MySQL表,希望使用QSqlQuery选择一些行 我已连接到本地开发mysql服务器(Windows;64位) 当我使用其他工具(如mysql workbench)运行SELECT查询时,我总是得到正确的结果(当然!) 对QSqlQuery执行同样的操作时,我根本没有行 QString sql = "SELECT `ID`, `Name`, `ModbusID`, `DeviceType` FROM `Devices`;"; qDebug() << sql;

我有一个非常简单的MySQL表,希望使用QSqlQuery选择一些行

我已连接到本地开发mysql服务器(Windows;64位)

当我使用其他工具(如mysql workbench)运行SELECT查询时,我总是得到正确的结果(当然!)

对QSqlQuery执行同样的操作时,我根本没有行

QString sql = "SELECT `ID`, `Name`, `ModbusID`, `DeviceType` FROM `Devices`;";

qDebug() << sql;

QSqlQuery query(m_db);
if(!query.prepare(sql))
{
    qFatal("could not prepare query");
    return;
}
if(!query.exec())
{
    qFatal("could not execute query");
    return;
}

while(query.next())
    qDebug() << "result";

qDebug() << "finished.";

在这两个程序中,我都连接到同一个本地mysql实例。我的机器或网络上没有其他mysql服务器。 Oracle的MySQL和MariaDB就是这样!所以问题一定在我的程序里

我做错什么了吗?这里发生了什么

更新在多次测试后,仅当我选择
ModbusID
时才会出现问题。我将表定义从

    `ModbusID` TINYINT UNSIGNED NOT NULL,


现在它开始工作了。看起来像。但我认为这不是一个好的解决方案。如果您知道使用
TINYINT
的方法,请写下答案或评论

您是否尝试过执行“从MeasurementID=?;”的设备中选择ID、名称、ModbusID、DeviceType”刚刚尝试过。结果是一样的!什么类型的
设备
?你能给我们看一下声明吗?迈克,我刚刚从示例中删除了
设备。我希望我的问题现在更清楚了。
    `ModbusID` TINYINT UNSIGNED NOT NULL,
    `ModbusID` INT UNSIGNED NOT NULL,