mysql qt 多字段匹配
我在a.cpp中query.exec(QObject::tr("select id from ib_sensors where dtu_id = %1;").arg(dtumac));
while(query.next())//查询成功
{
sensor_id = query.value(0).toInt();
qDebug()<<"sensor_id"<<sensor_id<<endl;
}
这句话是成功的,分别显示sensor_id 1sensor_id 2,.......
但是如果while(query.next())//查询成功
{
sensor_id = query.value(0).toInt();
qDebug()<<"sensor_id"<<sensor_id<<endl;
query.exec(QObject::tr("select bridge_id from ib_sensors where id = %1;").arg(sensor_id));
bridgeid = query.value(0).toInt();//全局变量bridgeid,在b.cpp调用,就会出现问题,我本意是想根据不同的sensoe_id得到不同bridgeid等等信息,遇到这种情况咋弄的
qDebug()<<"bridgeid"<<bridgeid<<endl;
} mysql qt 全局变量
[解决办法]
QSqlQuery query1(db);
query1.seek(i);
QSqlRecord record = query1.record();
sensor_id = record.value("id").toInt();
qDebug()<<"sensor_id2"<<sensor_id<<endl;
QSqlQuery queryIdFromibSensors(db);
QSqlQuery queryBridgeIdFromibSensors(db);
queryIdFromibSensors.exec(QObject::tr("select id from ib_sensors where dtu_id = %1;").arg(dtumac));//根
while(query.next())//查询成功
{
int sensor_id = queryIdFromibSensors.value(0).toInt();
qDebug()<<"sensor_id"<<sensor_id<<endl;//此处运行正常,两个sensor_id 全部输出
queryBridgeIdFromibSensors.exec(QObject::tr("select bridge_id from ib_sensors where id = %1;").arg(sensor_id));
if ( queryBridgeIdFromibSensors.first() )
{
int bridgeid = queryBridgeIdFromibSensors.value(0).toInt();
qDebug()<<"bridgeid"<<bridgeid<<endl;
}
}