declare ..........
..................
OPEN qc_pm_creat_app_cur
FETCH next from qc_pm_creat_app_cur
INTO @v_receive_no, @v_seq_no, @v_vendor_code, @v_vendor_name, @v_receive_date, @v_item_code,
@v_item_name, @v_pm_unit, @v_pm_unit_name, @v_receive_qty, @v_vendor_abv, @v_receive_note,
@v_receive_type;
while 1=1
begin if @@fetch_status<>0 --当找不到结果时
break
...............
...............
...............
诸多处理.......
..GOTO BB
................
BB:
FETCH NEXT FROM qc_pm_creat_app_cur
INTO @v_receive_no, @v_seq_no, @v_vendor_code, @v_vendor_name, @v_receive_date, @v_item_code,
@v_item_name, @v_pm_unit, @v_pm_unit_name, @v_receive_qty, @v_vendor_abv, @v_receive_note,@v_receive_type;
end
close qc_pm_creat_app_cur
Deallocate qc_pm_creat_app_cur
---------
在执行的时候提示:
服务器: 消息 16915,级别 16,状态 1,行 1
名为 'qc_pm_creat_app_cur' 的游标已存在。
服务器: 消息 16905,级别 16,状态 1,过程 qc_pm_apply_create_sp,行 262
游标已打开。
-------------------
我估计是BB后面fetch的问题,
但是不知道该做如何修改
各位大虾赐教啊!!!
..................
OPEN qc_pm_creat_app_cur
FETCH next from qc_pm_creat_app_cur
INTO @v_receive_no, @v_seq_no, @v_vendor_code, @v_vendor_name, @v_receive_date, @v_item_code,
@v_item_name, @v_pm_unit, @v_pm_unit_name, @v_receive_qty, @v_vendor_abv, @v_receive_note,
@v_receive_type;
while 1=1
begin if @@fetch_status<>0 --当找不到结果时
break
...............
...............
...............
诸多处理.......
..GOTO BB
................
BB:
FETCH NEXT FROM qc_pm_creat_app_cur
INTO @v_receive_no, @v_seq_no, @v_vendor_code, @v_vendor_name, @v_receive_date, @v_item_code,
@v_item_name, @v_pm_unit, @v_pm_unit_name, @v_receive_qty, @v_vendor_abv, @v_receive_note,@v_receive_type;
end
close qc_pm_creat_app_cur
Deallocate qc_pm_creat_app_cur
---------
在执行的时候提示:
服务器: 消息 16915,级别 16,状态 1,行 1
名为 'qc_pm_creat_app_cur' 的游标已存在。
服务器: 消息 16905,级别 16,状态 1,过程 qc_pm_apply_create_sp,行 262
游标已打开。
-------------------
我估计是BB后面fetch的问题,
但是不知道该做如何修改
各位大虾赐教啊!!!
Deallocate qc_pm_creat_app_cur
名为 'qc_pm_creat_app_cur' 的游标已存在。
服务器: 消息 16905,级别 16,状态 1,过程 qc_pm_apply_create_sp,行 262
游标已打开。找 262 行,前面是否已经打开游标,如果此句是打开游标,则将前面打开的同名游标关闭
折腾
set @v_sql = 'SELECT receive_no, seq_no, vendor_code, vendor_name, receive_date, item_code, item_name, pm_unit,
pm_unit_name, receive_qty, vendor_abv, receive_note,receive_type
FROM pm_receive_detail
WHERE company_code = ''' + @pi_company_code + '''
AND qc_select_flag = ''Y''
AND isnull(qc_create_flag, '' '') <> ''Y''
AND quality_flag = ''Y''
AND item_style = ''M'' and buyer_id=''' + @pi_user_unique_id + '''';
end
exec( 'DECLARE qc_pm_creat_app_cur Cursor for '+@v_sql)
open
.............................
一般可以用
declare..
open ..
fetch ..
while @@fetch_status=0
begin
--处理
fetch next
endclose ..
deallocate ..