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秒左右,好像是完全不起作用了,有没有高人能解答下小弟的疑问。。。