transaction()函数加入没有提高数据库运行速度的情况。。
QSqlDatabase::database().transaction();int level = m_level-2; int beginCode =0; int roomID =1; query.exec(QString("select id from t_room where floorID = (select id from t_floor where projectid = %1)").arg(m_wb->currentProject())); if (query.next()) { roomID = query.value(0).toInt(); } sql = QString("select Name,Count from t_infaredDeviceMenu where ProtocolName = '%1' and Level ='%2'").arg(m_protocolName).arg(level+1); query.exec(sql); while(query.next()) { int count = query.value(1).toInt(); QString Name = query.value(0).toString(); if (count==1) { addAutoDevices(beginCode,level+1,id,Name,moduleID,roomID); beginCode++; } else { for (int i=0;i<count;i++) { if (i!=0) { Name = Name +QString("_%1").arg(i+1); } addAutoDevices(beginCode,level+1,id,Name,moduleID,roomID); beginCode++; } } }QSqlDatabase::database().commit(); 上面这个是代码,其中红色部分是一个递归调用函数,这段代码总共插入了600多条数据,递归函数也执行了大概600次总共。。用时是1分28秒,然后关键是,绿字部分不管我加不加,这段代码的执行时间都是1分28秒左右,好像是完全不起作用了,有没有高人能解答下小弟的疑问。。。