📄 unit11.pas
字号:
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons,Unit2, DB, ADODB;
type
TForm11 = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
Image1: TImage;
ADOQuery1: TADOQuery;
procedure BitBtn1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
{$R *.dfm}
//提交注销
procedure TForm11.BitBtn1Click(Sender: TObject);
var
Query1,Query2,Query3 :TADOQuery;
begin
if Edit1.Text ='' then
begin
MessageBox(handle,'学号不能为空!','警告',MB_OK+MB_ICONWARNING);
Edit1.SetFocus ;
exit;
end;
if Edit2.Text ='' then
begin
MessageBox(handle,'姓名不能为空!','警告',MB_OK+MB_ICONWARNING);
Edit2.SetFocus ;
exit;
end;
ADOQuery1.Connection :=DataModule2.ADOConnection1 ; //确认输入的学号和姓名正确与匹配否
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('select * from 学生信息表 where 学号='''+Edit1.Text+'''');
ADOQuery1.Open ;
if ADOQuery1.Eof then
begin
MessageBox(handle,'错误的学号!','警告',MB_OK+MB_ICONWARNING);
Edit1.SetFocus ;
exit
end;
if ADOQuery1.FieldByName('姓名').AsString <> trim(Edit2.Text) then
begin
MessageBox(handle,'学号和姓名不匹配!','警告',MB_OK+MB_ICONWARNING);
Edit1.SetFocus ;
exit;
end;
ADOQuery1.Close ; //确认该学生是否还有住宿欠费
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('select * from 学期注册表 where 学号='''+Edit1.Text +'''');
ADOQuery1.Prepared ;
ADOQuery1.Open ;
while not ADOQuery1.Eof do
begin
if ADOQuery1.FieldByName('情况').AsString <>'已交清' then
begin
MessageBox(handle,'该学生有欠费,不能注销!','警告',MB_OK+MB_ICONINFORMATION);
exit;
end;
ADOQuery1.Next ;
end;
ADOQuery1.Close ; //删除学生信息表中的该学生的信息
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='delete from 学生信息表 where 学号='''+Edit1.Text+'''';
ADOQuery1.Prepared ;
Query1 :=TADOQuery.Create(self);
Query2 :=TADOQuery.Create(self);
Query3 :=TADOQuery.Create(self);
Query1.Connection :=DataModule2.ADOConnection1 ;
Query2.Connection :=DataModule2.ADOConnection1 ;
Query3.Connection :=DataModule2.ADOConnection1 ;
Query1.SQL.Clear ; //删除学生寝室表中的该学生的信息
Query1.SQL.Text :='delete from 学生寝室表 where 学号='''+Edit1.Text+'''';
Query1.Prepared ;
Query2.SQL.Clear ; //删除学期注册表中的该学生的信息
Query2.SQL.Text :='delete from 学期注册表 where 学号='''+Edit1.Text+'''';
Query1.Prepared ;
Query3.SQL.Clear ; //把寝室表中的实住人数减1 ,并将状态设为'未满'
Query3.SQL.Text :='update 寝室表 set 实住人数=(实住人数-1),状态=:A where 寝室号=(select 寝室号 from 学生寝室表 where 学号='''+Edit1.Text+''')';
Query3.Parameters.ParamByName('A').Value :='未满';
Query3.Prepared ;
try
DataModule2.ADOConnection1.BeginTrans ; //事务开始
Query3.ExecSQL ;
Query1.ExecSQL ; //注意:Query3,Query2和Query1的执行顺序,先: Query3,后Query2和Query1
Query2.ExecSQL ;
ADOQuery1.ExecSQL ;
DataModule2.ADOConnection1.CommitTrans ;
MessageBox(handle,'注销成功!','提示',MB_OK+MB_ICONINFORMATION);
except
DataModule2.ADOConnection1.RollbackTrans ; //提交失败,事务回滚
MessageBox(handle,'注销失败!','提示',MB_OK+MB_ICONWARNING);
end;
Query1.Close ;
Query1.Free ;
Query2.Close ;
Query2.Free ;
Query3.Close ;
Query3.Free ;
end;
procedure TForm11.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
Edit2.SetFocus ;
end;
end;
procedure TForm11.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
BitBtn1.Click;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -