C++ 选择TINYINT列时QSqlQuery未给出正确的结果
我有一个非常简单的MySQL表,希望使用QSqlQuery选择一些行 我已连接到本地开发mysql服务器(Windows;64位) 当我使用其他工具(如mysql workbench)运行SELECT查询时,我总是得到正确的结果(当然!) 对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;
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,