代码出错qry1:cannot perform this operation on a closed dataset
- C/C++ code
String sql; sql = "select * from 出勤表 "; sql += "where 年 = '"+cbb1->Text+"' and 月 = '"+cbb2->Text+"' "; sql += " and 姓名 = '"+Name+"' "; qry1->Close(); qry1->SQL ->Clear(); qry1->SQL ->Text = sql; qry1->Open(); qry1->First(); while(!qry1->Eof ) { try { for(int i=0;i<25;i++) { if(qry1->FieldByName("日")->AsString == cbb[i]->Caption) { if( qry1->FieldByName("出勤")->AsString == "Yes") cbb[i]->Checked = true; else cbb[i]->Checked = false; break; } } qry1->Next();//出错提示“qry1:cannot perform this operation on a closed dataset” } catch(...) { }[解决办法]
查看在执行该处代码时,是不是其他部分也有qry1执行更新操作,qry1->Next()时,qry1首先执行post然后才移动到下一条记录。错误是因为数据集已经关闭改写状态,而系统还在提交改写操作。
只是本段代码部分没有问题,查看下其他部分。
[解决办法]
看看你cbbClick里面的代码,可能是这里面有问题。
[解决办法]
就是这是onclick代码 里代码出问题了
这是onclick 里面 用qry1 去干其它事了
当然会有问题
onclick 里的qry1 换一个 例如添加一个 qry2 去执行update语句