回 帖 发 新 帖 刷新版面

主题:学生管理系统中学号的生成

我想做一个学生管理系统,其中学号要自动生成,由入学年份(如:2002)+系代号(如:08)+
班级号(如:01)+学生编号(如:39)->自动生成为2002080139,生成时系代号、班级号选择输入,学生编号接着上一个学生编号+1生成,在取“上一个学生编号”时要如何做,要注意些什么,请高手指教!!!!!!!

回复列表 (共5个回复)

沙发

我想你可以把上个学生的编号设成一个变量吧,
咱们可以交流

板凳

这个变量如何保存?我不一定一次输完所有学生的信息.....

3 楼

在Delphi 的onNewRecord事件中写代码,或者用触发器生成。

4 楼

你可以从上一条记录中取出学号加一呀,
也可以用别一张表记录这个编号,下次录入可以直接从表中取出加一,
并更新表,

5 楼

假设学生表为这个结构:
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;

我来回复

您尚未登录,请登录后再回复。点此登录或注册