将这个算法编成存储过程

yanjianhong 2003-11-20 03:29:28
Go_To_Top(BASIC_DB);
setp1: 若Is_Eof(BASIC_DB) 为真,则结束;否则转 setp2
setp2:若Is_Eof(RULE_PRE_DB)为真,则转setp 5 ;否则转setp 3
setp3: 若Get_Value(RULE_ACT_DB,rule_name) = Get_Value(RULE_PRE_DB,rule _name) 则如下;否则 转setp4
若Get_Value(RULE_ACT_DB,num2) =1
则:Add_Record(BASIC_DB,used,.t.)
Add_Record(EP_DB,used,.t.)
Set_Value(RULE_ACT_DB,active,.t.)
否则: Set_Value(RULE_ACT_DB,num2,num2-1)
skip
转setp3
setp4: Set_Value(RULE_PRE_DB,Active,.t.) 转setp2.
setp5: Set_Value(BASIC_DB,Used,.t.) 转setp1.

其中 Get_Value(DB,field): 返回数据库DB中当前记录field字段的值
Is_Eof(DB): 数据库DB的当前记录指针是否指向文件末尾。
Go_To_Top(DB)将数据库DB当前记录指针移到第一条记录。
Add_Record(DB,Record):把非空记录Record加到数据库DB中
Set_Value(DB,field,value):置数据库DB中当前记录field字段的值
为value.
...全文
41 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
realgz 2003-11-20
  • 打赏
  • 举报
回复
自己的思想就是都用goto实现,难怪晕,到底是什么应用,放弃goto的分析方法重新分析才是正理。
yanjianhong 2003-11-20
  • 打赏
  • 举报
回复
给出的答案不合我意
yanjianhong 2003-11-20
  • 打赏
  • 举报
回复
我觉得将他们合到一块儿,用游标实现,因为在数据库中只能用游标来对某一行记录进行操作,而不用goto语句
zjcxc 元老 2003-11-20
  • 打赏
  • 举报
回复
楼主要给出具体的数据,才能写出具体的存储过程.
zjcxc 元老 2003-11-20
  • 打赏
  • 举报
回复
create proc p_test
as
declare @a int

lb_setp1:
if Is_Eof(BASIC_DB)=1 return

lb_setp2:
if Is_Eof(RULE_PRE_DB)=1 goto lb_setp5

lb_setp3:
if dbo.Get_Value(RULE_ACT_DB,rule_name) =dbo.Get_Value(RULE_PRE_DB,rule_name)
begin
if dbo.Get_Value(RULE_ACT_DB,num2) =1
begin
exec Add_Record BASIC_DB,used,.t.
exec Add_Record EP_DB,used,.t.
exec Set_Value(RULE_ACT_DB,active,.t.
end
else
begin
exec Set_Value RULE_ACT_DB,num2,num2-1
goto lb_setp3
end
end

lb_setp4:
exec Set_Value RULE_PRE_DB,Active,.t.
goto lb_setp2

lb_setp5:
exec Set_Value BASIC_DB,Used,.t.
goto lb_setp1
go
pengdali 2003-11-20
  • 打赏
  • 举报
回复
楼主用游标自己取吧。

declare cursor_insert cursor for select c# from cs
declare @i int
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
print @i
fetch cursor_insert into @i
end
close cursor_insert
deallocate cursor_insert
txlicenhe 2003-11-20
  • 打赏
  • 举报
回复
怎么那么多跳转啊?楼主晕不晕啊?

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧