DECLARE AssigChart CURSOR FOR SELECT vad_id_no, drv_id_no, vad_st_dt, vad_st_tm, vad_fn_dt, vad_fn_tm FROM lu02vad WHERE lTachoSmartCardID = @tachoSmartCardID
OPEN AssigChart FETCH NEXT FROM AssigChart INTO @ChartID, @drvid, @dStartTime, @lStartTime, @dEndTime, @lEndTime
WHILE (@@FETCH_STATUS <> -1)
BEGIN
<------------------some processing ---------------------->>>>>>>>
FETCH NEXT FROM AssigChart
INTO @ChartID, @drvid, @dStartTime, @lStartTime, @dEndTime, @lEndTime
END
CLOSE AssigChart
DEALLOCATE AssigChart
回答
@@ FETCH_STATUS返回下面的值....
0 The FETCH statement was successful.
-1 The FETCH statement failed or the row was beyond the result set.
-2 The row fetched is missing.
所以对于unsuccessfull它可以retur -1和-2人,soeither您可以检查它这样的.. ..
while @@FETCH_STATUS=0
或
while @@FETCH_STATUS<>-1 and @@FETCH_STATUS<>-2
不仅'@@ FETCH_STATUS'检查不正确,而且您通常会在进入循环时使用FETCH _before_进行变种。 –
@ElectricLlama我觉得OP entring循环之前获取它......看到it..after其中op打开游标...... –
我们有一个处理单元内的另一个光标,是重置@@ FETCH_STATUS每次为0? – user2450518
尝试这一个 -
DECLARE AssigChart CURSOR READ_ONLY LOCAL FAST_FORWARD FOR
SELECT vad_id_no, drv_id_no, vad_st_dt, vad_st_tm, vad_fn_dt, vad_fn_tm
FROM lu02vad
WHERE lTachoSmartCardID = @tachoSmartCardID
OPEN AssigChart
FETCH NEXT FROM AssigChart INTO
@ChartID
, @drvid
, @dStartTime
, @lStartTime
, @dEndTime
, @lEndTime
WHILE @@FETCH_STATUS = 0 BEGIN
-- your statements
FETCH NEXT FROM AssigChart INTO
@ChartID
, @drvid
, @dStartTime
, @lStartTime
, @dEndTime
, @lEndTime
END
CLOSE AssigChart
DEALLOCATE AssigChart
谢谢这么多...... – user2450518
不客气@ user2450518。 – Devart
如果此解决方案完全适合您,请批准它。 FOR SELECT DISTINCT vad_id_no,drv_id_no,vad_st_dt,vad_st_tm,vad_fn_dt,vad_fn_tm FROM lu02vad \t – Devart
- 1. SSIS FOR循环进入无限循环
- 2. javascript for循环进入无限循环
- 3. 虽然循环进入无限循环
- 4. cin.getline进入无限循环
- 5. HAL_Delay()进入无限循环
- 6. inputmismatchexception:进入无限循环?
- 7. 进入无限循环
- 8. clear()进入无限循环
- 9. dispatch_async进入无限循环
- 10. Emacs无窗进入无限循环
- 11. msgbox进入excelsheet中的无限循环
- 12. 单身进入一个无限循环
- 13. documentlistener与invokelater进入无限循环
- 14. 计划是进入无限循环C++
- 15. httphandler重定向进入无限循环
- 16. 为什么它进入无限循环
- 17. eof perl-进入无限循环
- 18. Angularjs路由进入无限循环
- 19. 检查空进入无限循环
- 20. opencart getcategories函数进入无限循环
- 21. 路线进入无限循环序言
- 22. 悬停和unhover进入无限循环
- 23. FTP OS.Walk进入无限循环
- 24. Facebook重定向进入无限循环
- 25. 的setInterval进入无限循环
- 26. Python构建进入无限循环
- 27. mysql触发器进入无限循环
- 28. 快速排序进入无限循环
- 29. JBox2d - world.getBodyList()进入一个无限循环
- 30. python subprocess.popen进入无限循环
是否'一些processing'包含任何其他光标代码?我见过很多人都搞砸了嵌套游标。此外,'@@ FETCH_STATUS'的通常使用是'WHILE @@ FETCH_STATUS = 0',它检查是否成功,而不是*可能的失败代码。 –