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',它檢查是否成功,而不是*可能的失敗代碼。 –