首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

代码出错qry1:cannot perform this operation on a closed dataset解决思路

2012-03-11 
代码出错qry1:cannot perform this operation on a closed datasetC/C++ codeString sqlsql select * f

代码出错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语句

热点排行