Chinaunix

标题: oracle 循环查询某一记录问题??? [打印本页]

作者: iacxin099    时间: 2010-06-25 09:42
标题: oracle 循环查询某一记录问题???
开发环境:Solaris 10
数据库:Oracle 10g 用PL/SQL管理
开发工具:CC 编译器 OCCI接口

部分代码如下:
COracleWrapper *obj = new COracleWrapper(user, passwd, db);

string sqlStr = "select * from tableOne where IsActive=1";
string updateStr = "update tableOne set querynow=1 where taskid=5";
while(true)
{

  ResultSet* querySet = obj->ExecuteQuery(sqlStr);
  while(querySet->next())
  {
  int stateValue = querySet->getInt(4);
  if(stateValue == 1)
  {
obj->ExecuteUpdate(updateStr);
  }
  }
  sleep(10000);
  obj->ClearQuery(querySet);
  sleep(10000);
}
delete (obj);

问题:当我用while循环查询某一表某一记录时,这个记录某一字段就不能更新了吗?用PL/SQL更新改记录时,提示记录被另一用户锁住。

有什么办法循环查询某一记录时,又能修改改记录某一字段。
作者: doni    时间: 2010-06-25 09:58
obj->ExecuteUpdate(updateStr);
有update
作者: iacxin099    时间: 2010-06-25 10:53
stateValue 和querynow是表tableOne 的两个字段,初始值为0
我是想通过while循环不断查询stateValue 字段的值, 当stateValue 值为1时,执行Update,更新querynow值为1。
当我执行该程序后,用PL/SQL修改stateValue 为1,但是querynow为什么没有变化????
作者: dingning239    时间: 2010-06-25 11:07
循环的键值貌似不可以更改
作者: iacxin099    时间: 2010-06-25 11:50
我用C#操作SQL Server2005可以while循环修改键值。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2