| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2500 人关注过本帖
标题:关于存储过程实现编号自动增加问题?
只看楼主 加入收藏
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
 问题点数:0 回复次数:16 
关于存储过程实现编号自动增加问题?

请教各位前辈,
本人正在做毕业设计关于图书馆管理信息系统.现在遇到一个非常头痛的问题.
用存储过程怎么实现编号自动增加?
当界面中输入图书总量,在存储过程中实现图书编号在原来的基础上自动增加.
这是我的原代码:
try
with datamoduleado.ADOStoredProc1 do
begin
close;
procedurename:='Insert_BookStateInfo';
parameters.Clear ;
parameters.CreateParameter('@ISDN',ftstring,pdinput,10,0);
parameters.CreateParameter('@TotalStock',ftinteger,pdinput,4,0);
// parameters.CreateParameter('@BookID',ftstring,pdinput,10,0);

// 这里的BookID我注释了希望用存储过程来实现BookID自动增加,用TotalStock来控制增加的数量
parameters.ParamByName('@ISDN').Value :=trim(ISDNEdit.Text) ;
parameters.ParamByName('@TotalStock').Value :=TotalStockEdit.Text;
// parameters.ParamByName('@BookID').Value :=trim(BookIDEdit.Text) ;
prepared;
execproc;
end;
except
begin
messagedlg('数据库添加失败',mterror,[mbok],0);
exit;
end;
close;
end;
这是我的存储过程: //希望哪位高手能帮我的存储过程修改成BookID自动增加
create proc Insert_BookStateInfo
@ISDN varchar(10),
@TotalStock integer,
@BookID varchar(13)

as
begin tran
declare @State varchar(10)
select @State='归还'
insert into BookStateInfo(ISDN,BookID,State)
values(@ISDN,@BookID,@State)
update BookInfo
set TotalStock=isnull(TotalStock,0)+@TotalStock
from BookInfo as a ,BookStateInfo as b
where a.ISDN=b.ISDN and b.ISDN=@ISDN
commit
这是我的qq:108643063 哪位高手如果能帮我解决问题,请把答案发到我的qq上.万分感谢!

搜索更多相关主题的帖子: 信息系统 自动 parameters target 
2006-04-12 10:42
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 

方案有2个

第一 去研究研究identity是怎么写的,把bookid字段改为自动编号。

第二 将Bookid变量内置,每次添加的值为原库中最大Bookid+1(反正记录是逐行添加的)


2006-04-12 11:04
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 
对.是第二个方案,存储过程不会写,请教高手再指点一下好吗?

2006-04-12 11:36
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 
第一个方案行不通,因为BookID在数据库中定义是varchar不是自动编号.比如说BookID为AT311

2006-04-12 11:39
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
以下是引用missking在2006-4-12 11:39:00的发言:
第一个方案行不通,因为BookID在数据库中定义是varchar不是自动编号.比如说BookID为AT311

。。。
除了AT还有别的缩写头文字么?


2006-04-12 11:41
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 
没有了.怎么办?

2006-04-12 11:45
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 
下面我想让它自动产生

2006-04-12 11:45
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 
当用户输入图书总量为5时,数据库中自动产生5个BookID

2006-04-12 11:47
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 

如果BookID为AT311,那么AT表示文艺类图书它有311本.
所以如果我在界面中输入再增加5本读书,那么就要在原来的基础上再增加5个编号


2006-04-12 11:52
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
收藏
得分:0 

请教高手再指点一下好吗?这个问题我已经想了好久了,还没有解决.请你再帮帮我好吗?我真的很急


2006-04-12 12:02
快速回复:关于存储过程实现编号自动增加问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023205 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved