本程序实现一个简单的选课功能,涉及两张表:course(课程信息)和sc(选课记录),表结构如下
course(cno 课号,cname 课名,credit 学分 ctime 时间 quota 名额)
sc(sno 学号,cno 课号,grade 成绩)
在用户界面上,操作员选中一门课,在edit1框中输入学号后,按"选课"按钮完成选课功能,即在sc表中插入一条选课记录,并将course表中该课程名额减1
该界面要实现以下合法性检查:
当该学生已经选过此课,不能再选
当课程名额为0,不能再选
在form1上建立数据库组建对象及连接关系如下:
Database1--Table1(与course表相连)--Datasourse1--DBGrid1(显示课程信息)
Database1--Query1、query2
其中Table1建立了永久字段:Table1cno(课号)、Table1cname(课程名)、Table1quota(名额)等。
query1的SQL语句如下
select cno
from sc
where sno=:sno and cno=:cno
query2的SQL语句如下
insert into sc
values(:sno,:cno,null)
程序代码
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender:TObject);//选课
begin
query1.close;
query1.ParambyName('sno').Value:=_______ 1
query1.ParambyName('cno').Value:=tablelcno.Value;
query1.open;
if ________2 <> null then
begin
ShowMessage('已经选过该课程');
exit;
end;
if _________3 =0 then
begin
Showmessage('已经没有名额');
exit;
end;
query2.close;
query2.ParambyName('sno').Value:=edit1.text;
query2.ParambyName('cno').Value:=tablecno.Value;
query2._______4;
Table1.________5;
table1quota.Value:=table1quota.Value-1;//课程名额减去1
table1.post;
end;
course(cno 课号,cname 课名,credit 学分 ctime 时间 quota 名额)
sc(sno 学号,cno 课号,grade 成绩)
在用户界面上,操作员选中一门课,在edit1框中输入学号后,按"选课"按钮完成选课功能,即在sc表中插入一条选课记录,并将course表中该课程名额减1
该界面要实现以下合法性检查:
当该学生已经选过此课,不能再选
当课程名额为0,不能再选
在form1上建立数据库组建对象及连接关系如下:
Database1--Table1(与course表相连)--Datasourse1--DBGrid1(显示课程信息)
Database1--Query1、query2
其中Table1建立了永久字段:Table1cno(课号)、Table1cname(课程名)、Table1quota(名额)等。
query1的SQL语句如下
select cno
from sc
where sno=:sno and cno=:cno
query2的SQL语句如下
insert into sc
values(:sno,:cno,null)
程序代码
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender:TObject);//选课
begin
query1.close;
query1.ParambyName('sno').Value:=_______ 1
query1.ParambyName('cno').Value:=tablelcno.Value;
query1.open;
if ________2 <> null then
begin
ShowMessage('已经选过该课程');
exit;
end;
if _________3 =0 then
begin
Showmessage('已经没有名额');
exit;
end;
query2.close;
query2.ParambyName('sno').Value:=edit1.text;
query2.ParambyName('cno').Value:=tablecno.Value;
query2._______4;
Table1.________5;
table1quota.Value:=table1quota.Value-1;//课程名额减去1
table1.post;
end;
2.Query1.RecordCount
3.Table1quota.value
4.Open
5.Edit仅供参考^_^
2.Query1.Fields[1].Value
3.Table1.FieldByName('Table1quota').asInteger
4.Open
5.Edit //Open应也可以