免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2600 | 回复: 4
打印 上一主题 下一主题

oracle 循环查询某一记录问题??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-25 09:42 |只看该作者 |倒序浏览
开发环境: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更新改记录时,提示记录被另一用户锁住。

有什么办法循环查询某一记录时,又能修改改记录某一字段。

论坛徽章:
0
2 [报告]
发表于 2010-06-25 09:58 |只看该作者
obj->ExecuteUpdate(updateStr);
有update

论坛徽章:
0
3 [报告]
发表于 2010-06-25 10:53 |只看该作者
stateValue 和querynow是表tableOne 的两个字段,初始值为0
我是想通过while循环不断查询stateValue 字段的值, 当stateValue 值为1时,执行Update,更新querynow值为1。
当我执行该程序后,用PL/SQL修改stateValue 为1,但是querynow为什么没有变化????

论坛徽章:
0
4 [报告]
发表于 2010-06-25 11:07 |只看该作者
循环的键值貌似不可以更改

论坛徽章:
0
5 [报告]
发表于 2010-06-25 11:50 |只看该作者
我用C#操作SQL Server2005可以while循环修改键值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP