主题:学生管理系统中学号的生成
happydql
[专家分:80] 发布于 2006-04-22 20:57:00
我想做一个学生管理系统,其中学号要自动生成,由入学年份(如:2002)+系代号(如:08)+
班级号(如:01)+学生编号(如:39)->自动生成为2002080139,生成时系代号、班级号选择输入,学生编号接着上一个学生编号+1生成,在取“上一个学生编号”时要如何做,要注意些什么,请高手指教!!!!!!!
回复列表 (共5个回复)
沙发
tianxu516 [专家分:10] 发布于 2006-04-22 23:06:00
我想你可以把上个学生的编号设成一个变量吧,
咱们可以交流
板凳
happydql [专家分:80] 发布于 2006-04-22 23:31:00
这个变量如何保存?我不一定一次输完所有学生的信息.....
3 楼
jianfeihua [专家分:780] 发布于 2006-04-23 08:18:00
在Delphi 的onNewRecord事件中写代码,或者用触发器生成。
4 楼
booksword [专家分:210] 发布于 2006-04-24 16:42:00
你可以从上一条记录中取出学号加一呀,
也可以用别一张表记录这个编号,下次录入可以直接从表中取出加一,
并更新表,
5 楼
hanzhijun402 [专家分:3690] 发布于 2006-04-24 19:29:00
假设学生表为这个结构:
create table student(
Sno varchar (20),
Dno varchar(2),
Cno varchar(3),
YearIn varchar(10)))
那么可以这样插入新的纪录。
var
num:string;
With adoquery do
begin
close;
sql.clear;
sql.add('select count(*) as num from student where Dno=:Dno and Cno=:Cno');
parameters.parambyname('Dno').value:=.... //选择的系号
parameters.parambyname('Cno').value:=.... //选择的班号
open;
num:=fieldbyname('num').asstring;
num:='年份'+'系号'+'班号'+inttostr(strtoint(num)+1);
close;
sql.clear;
sql.add('insert into student(Sno,...) values(:Sno,:...)');
parameters.parambyname('Sno').value:=num;
...
execsql;
end;
我来回复