CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

@@fetch_status值老不定?

楼主dongkuang(雾雨)2006-03-02 17:45:44 在 MS-SQL Server / 疑难问题 提问

declare   yb   SCROLL   CURSOR   for  
  select   id   from   equipment   where     equipment.id   between   @beginsid   and   @endsid   order   by     equipment.sid  
  open   yb  
  while   @@fetch_status=0  
  begin  
  fetch   next   from   yb   into   @@id  
  insert   into   equipmentysdtemp(equipmentsid,equipmentsidgo)  
  values(@beginsid,@@fetch_status)  
  continue  
  end  
  close   yb  
  deallocate   yb  
   
  用asp.net调用此存储过程,过几分钟第一次试就正常,以后连续试都擦入空白,经测试,是@@fetch_status值老不定,不知为什么? 问题点数:100、回复次数:8Top

1 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-03-02 17:50:10 得分 0

--try  
  declare   yb   SCROLL   CURSOR   for  
  select   id   from   equipment   where     equipment.id   between   @beginsid   and   @endsid   order   by     equipment.sid  
  open   yb  
  while   @@fetch_status=0  
  begin  
  insert   into   equipmentysdtemp(equipmentsid,equipmentsidgo)  
  values(@beginsid,@@fetch_status)  
  fetch   next   from   yb   into   @@id  
  end  
  close   yb  
  deallocate   yb  
  Top

2 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-03-02 17:52:49 得分 0

--try  
  declare   yb   SCROLL   CURSOR   for  
  select   id   from   equipment   where     equipment.id   between   @beginsid   and   @endsid   order   by     equipment.sid  
  open   yb  
  Fetch   yb   Into   @@id  
  while   @@fetch_status=0  
  begin  
  insert   into   equipmentysdtemp(equipmentsid,equipmentsidgo)  
  values(@beginsid,@@fetch_status)  
  Fetch   yb   Into   @@id  
  end  
  close   yb  
  deallocate   ybTop

3 楼dongkuang(雾雨)回复于 2006-03-02 18:05:46 得分 0

这个我知道,就是想知道为啥@@fetch_status值老不定?因为我以前的系统这样用的,没问题,为啥现在有,是不是都要改Top

4 楼wgsasd311(自强不息)回复于 2006-03-03 09:42:26 得分 0

--楼主范了逻辑错误,应是先取值,再判断游标状态,试下面  
  --try  
  declare   yb   SCROLL   CURSOR   for  
  select   id   from   equipment   where     equipment.id   between   @beginsid   and   @endsid   order   by     equipment.sid  
  open   yb  
  fetch   next   from   yb   into   @@id  
  while   @@fetch_status=0  
  begin  
  insert   into   equipmentysdtemp(equipmentsid,equipmentsidgo)  
  values(@beginsid,@@fetch_status)  
  fetch   next   from   yb   into   @@id  
  end  
  close   yb  
  deallocate   ybTop

5 楼mislrb(上班看看早报,上上CSDN,下班看看电影)回复于 2006-03-03 10:05:47 得分 0

同意楼上Top

6 楼zjcxc(邹建)回复于 2006-03-03 12:25:32 得分 100

楼主的逻辑有问题  
  fetch   是取下一条数据,   取数据是否成功,   这个是未知的,   要通过@@fetch_status来判断.  
  而楼主在fetch后就直接插入了,   并没有理会fetch是否成功,   结果当然会有问题.Top

7 楼wanyong775(渔民:小小的网少年)回复于 2006-03-03 20:22:19 得分 0

學習Top

8 楼msjqd(黑色幽默)回复于 2006-03-04 11:18:32 得分 0

同意   邹建老大Top

相关问题

  • 如果使用嵌套游标那么如何确定@@fetch_status变量在某一层里是哪个游标的状态?
  • status的默认值
  • 特急!fetch游标时返回值(sqlca.sqlcode)为什么为-1
  • 发现使用游标时用(@@fetch_status=0)判断是否滚动未到结尾有问题。最后一条会fetch两次。
  • 如何设定ResultSet对象可上下fetch?
  • 请问ASA中与SQL SERVER中的@@FETCH_STATUS作用相同的sql语法是什么?
  • fetch out of sequences?
  • Attempt to fetch logical page
  • status是定义是什么?
  • 关于mysql_fetch_array

关键词

  • beginsid
  • yb
  • fetch
  • equipment
  • equipmentsidgo
  • equipmentsid
  • equipmentysdtemp
  • forselect
  • sidopen
  • ybdeallocate

得分解答快速导航

  • 帖主:dongkuang
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo