利用游标实现递归(函数)

 涉及到的数据库表(SSC_Function)结构:

 

create function [dbo].[GetFunctionInfo]

(

    @PARENT_ID as varchar(100) --ID

)

returns @FunctionTreeInfo table

(

    FUNCTION_ID varchar(100) not null,

    FUNCTION_NAME nvarchar(100),

    FUNCTION_DESC nvarchar(100),

    FUNCTION_ORDER int,

    PARENT_ID varchar(100),

    FUNCTION_LEVEL int

)

as

begin

    --声明相应变量,用于接收游标中的值

    declare @FUNCTION_ID varchar(100)

    declare @FUNCTION_NAME nvarchar(100)

    declare @FUNCTION_DESC nvarchar(100)

    declare @FUNCTION_ORDER int

    declare @PARENT_ID2 varchar(100)

    declare @FUNCTION_LEVEL int

   

    --声明一个游标,读取功能表中PARENT_ID为目前传入参数值的记录

    declare cur_function cursor

    for

    select * from SSC_Function where PARENT_ID=@PARENT_ID

    order by FUNCTION_ORDER

   

    --打开游标

    open cur_function

 

    --读取游标中记录的第一条

    fetch next from cur_function

    into @FUNCTION_ID,@FUNCTION_NAME,@FUNCTION_DESC,@FUNCTION_ORDER,@PARENT_ID2,@FUNCTION_LEVEL

 

    while @@fetch_status=0

    begin

       --将数据插入到表中

       insert into @FunctionTreeInfo

        values(@FUNCTION_ID,@FUNCTION_NAME,@FUNCTION_DESC,@FUNCTION_ORDER,@PARENT_ID2,@FUNCTION_LEVEL)

 

       --递归

       insert @FunctionTreeInfo select * from GetFunctionInfo(@FUNCTION_ID)

      

       --继续读取下一条记录

       fetch next from cur_function

       into @FUNCTION_ID,@FUNCTION_NAME,@FUNCTION_DESC,@FUNCTION_ORDER,@PARENT_ID2,@FUNCTION_LEVEL

    end

 

    --关闭游标

    close cur_function

    deallocate cur_function 

 

    return

end

实验课题二、简单物料进仓/出仓信息管理 企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等 1.企业仓库进出仓信息表以“班级+座号+(表示程序名的中英文信息)”来命名,可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告中描述。 2.进仓程序与出仓程序可以合并,也可以分开,名称以“班级+座号+(表示程序名的中英文信息)”来命名。其中操作人员必须用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告中说明;进出仓日期用日期控件;物料代码必须下拉框选择;当物料出仓时必须判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表中可以获得该物料的库存数量。进行进仓或出仓操作时必须通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。 3.进仓、出仓的存储过程可以合并或分开,存储过程名称以“班级+座号+(表示程序名的中英文信息)”来命名,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表中库存数量进行修改,提交数据库操作,否则回滚。 4.进出仓单查询程序,以“班级+座号+(表示程序名的中英文信息)”来命名,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值