procedure TF_Select.BitBtn1Click(Sender: TObject);
begin
begin
if RadioButton1.Checked then //选择课程
begin
if (length(edit1.Text)<>4) or (Length(Edit2.Text)<>3) then
begin
messagedlg('请输入正确的课程号和教师号',mtError,[mbok],0);
exit;
end;
with DataModule1.ADOQ_Cselect do
begin
sql.Clear ;
sql.Add('select cno,tno from cselect where cno=:cno AND tno=:tno');
parameters.ParamByName('cno').Value :=edit1.Text ;
parameters.ParamByName('tno').Value :=edit2.Text ;
open;
if recordcount <>0 then
begin
messagedlg('你已经选了这门课程',mterror,[mbok],0);
exit;
end;
close;
end; begin
Edit1.Text:='';
Edit2.Text:='';
end; with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.Add('INSERT INTO cselect(sno,cno,tno) VALUES("'+username+'",'+edit1.text+','+edit2.text+')');
ADOQ_Cselect.ExecSQL;
end;
ShowMessage('选课成功');
end;
if RadioButton2.Checked then //删除选课记录
begin
with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.Add('DELETE FROM cselect WHERE cno="'+Edit1.Text+'" AND tno="'+Edit2.Text+'"');
ADOQ_Cselect.Open;
end;
end;
end;
end;
procedure TF_Select.btn1Click(Sender: TObject); //刷新选课信息
begin
with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.ADD('SELECT cselect.cno AS 课程号,cinfo.cname AS 课程名称,cselect.tno AS 教师号,cinfo.tname AS 教师名,cinfo.credit AS 学分,cinfo.cplace AS 上课地点 ,cinfo.ctime AS 上课时间,cinfo.limitdept AS 限选院系 FROM cinfo,cselect WHERE ');
ADOQ_Cselect.SQL.Add('cinfo.cno=cselect.cno AND cinfo.tno=cselect.tno AND cselect.sno="'+username+'"');
ADOQ_Cselect.Open;
end;
end;end.
在删除一个选课记录的时候报告错误说“不支持单一执行返回多个记录集”。为什么啊?
begin
begin
if RadioButton1.Checked then //选择课程
begin
if (length(edit1.Text)<>4) or (Length(Edit2.Text)<>3) then
begin
messagedlg('请输入正确的课程号和教师号',mtError,[mbok],0);
exit;
end;
with DataModule1.ADOQ_Cselect do
begin
sql.Clear ;
sql.Add('select cno,tno from cselect where cno=:cno AND tno=:tno');
parameters.ParamByName('cno').Value :=edit1.Text ;
parameters.ParamByName('tno').Value :=edit2.Text ;
open;
if recordcount <>0 then
begin
messagedlg('你已经选了这门课程',mterror,[mbok],0);
exit;
end;
close;
end; begin
Edit1.Text:='';
Edit2.Text:='';
end; with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.Add('INSERT INTO cselect(sno,cno,tno) VALUES("'+username+'",'+edit1.text+','+edit2.text+')');
ADOQ_Cselect.ExecSQL;
end;
ShowMessage('选课成功');
end;
if RadioButton2.Checked then //删除选课记录
begin
with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.Add('DELETE FROM cselect WHERE cno="'+Edit1.Text+'" AND tno="'+Edit2.Text+'"');
ADOQ_Cselect.Open;
end;
end;
end;
end;
procedure TF_Select.btn1Click(Sender: TObject); //刷新选课信息
begin
with DataModule1 do
begin
ADOQ_Cselect.Close;
ADOQ_Cselect.SQL.Clear;
ADOQ_Cselect.SQL.ADD('SELECT cselect.cno AS 课程号,cinfo.cname AS 课程名称,cselect.tno AS 教师号,cinfo.tname AS 教师名,cinfo.credit AS 学分,cinfo.cplace AS 上课地点 ,cinfo.ctime AS 上课时间,cinfo.limitdept AS 限选院系 FROM cinfo,cselect WHERE ');
ADOQ_Cselect.SQL.Add('cinfo.cno=cselect.cno AND cinfo.tno=cselect.tno AND cselect.sno="'+username+'"');
ADOQ_Cselect.Open;
end;
end;end.
在删除一个选课记录的时候报告错误说“不支持单一执行返回多个记录集”。为什么啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货