📄 unitteacheredit.pas
字号:
unit UnitTeacherEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, DB, ADODB;
type
TfrmTeacherEdit = class(TForm)
dbg: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
edtName: TEdit;
Label2: TLabel;
dtpBirth: TDateTimePicker;
Label3: TLabel;
cmbSex: TComboBox;
Label4: TLabel;
edtHome: TEdit;
Label5: TLabel;
edtDept: TEdit;
btnEdit: TButton;
btnDel: TButton;
btnClose: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure dbgCellClick(Column: TColumn);
procedure btnCloseClick(Sender: TObject);
procedure edtNameChange(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
private
{ Private declarations }
ds: TDataSource;
qry: TADOQuery;
procedure FreshDBGrid;
procedure SetEnable(b: Boolean);
public
{ Public declarations }
end;
var
frmTeacherEdit: TfrmTeacherEdit;
implementation
uses UnitData;
{$R *.dfm}
procedure TfrmTeacherEdit.FreshDBGrid;
var
query: TADOQuery;
begin
qry.Close;
qry.SQL.Clear;
//重命名以便room表使用
qry.SQL.Add('select id as 记录号,name as 姓名 from TEACHER');
qry.Open; // 执行
SetEnable(not qry.Eof); //设置变量
if not qry.Eof then begin
query := TADOQuery.Create(self); //创建窗体
query.Connection := data.adoc; //与数据库连接
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('记录号').AsString);
query.Open;
edtName.Text := query.FieldByName('name').AsString;
dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
edtHome.Text := query.FieldByName('home').AsString;
edtDept.Text := query.FieldByName('dept').AsString;
query.Free;
end;
end;
//当管理的教师为空时教师基本信息和修改删除按钮不能使用
procedure TfrmTeacherEdit.SetEnable(b: Boolean);
//传变量值给各个控件的显示属性
begin
btnEdit.Enabled := b;
btnDel.Enabled := b;
edtName.Enabled := b;
dtpBirth.Enabled := b;
cmbSex.Enabled := b;
edtHome.Enabled := b;
edtDept.Enabled := b;
end;
//创建窗体本身
procedure TfrmTeacherEdit.FormCreate(Sender: TObject);
begin
qry := TADOQuery.Create(self); //调用数据库
ds := TDataSource.Create(self);
qry.Connection := data.adoc;
ds.DataSet := qry;
dbg.DataSource := ds;
end;
procedure TfrmTeacherEdit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qry.Free;
ds.Free;
end;
procedure TfrmTeacherEdit.FormShow(Sender: TObject);
begin
FreshDBGrid;
end;
//点击“修改”后表格进行的处理
procedure TfrmTeacherEdit.dbgCellClick(Column: TColumn);
var
query: TADOQuery;
begin
SetEnable(not qry.Eof);
if not qry.Eof then begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('select * from TEACHER where id=' + qry.FieldByName('记录号').AsString); //在表中显示id和名字两个字段
query.Open;
edtName.Text := query.FieldByName('name').AsString;
dtpBirth.DateTime := query.FieldByName('birth').AsDateTime;
cmbSex.ItemIndex := query.FieldByName('sex').AsInteger;
edtHome.Text := query.FieldByName('home').AsString;
edtDept.Text := query.FieldByName('dept').AsString;
query.Free;
end;
end;
procedure TfrmTeacherEdit.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmTeacherEdit.edtNameChange(Sender: TObject);
begin
btnEdit.Enabled := (edtName.Text <> '') and not qry.Eof;
end;
//点击“修改”按钮
procedure TfrmTeacherEdit.btnEditClick(Sender: TObject);
var
query: TADOQuery;
begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('update TEACHER set name=''' + edtName.Text + ''',birth=''' + DateToStr(dtpBirth.DateTime) + ''',sex=' + inttostr(cmbSex.ItemIndex) + ',home=''' + edtHome.Text + ''',dept=''' + edtDept.Text + ''' where id=' + qry.FieldByName('记录号').AsString);
query.ExecSQL;
query.Free;
FreshDBGrid;
end;
//点击“删除“按钮
procedure TfrmTeacherEdit.btnDelClick(Sender: TObject);
var
query: TADOQuery;
begin
if application.MessageBox(PAnsiChar('真的要删除吗?'), PAnsiChar('确认删除'), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDYES then begin
query := TADOQuery.Create(self);
query.Connection := data.adoc;
query.Close;
query.SQL.Clear;
query.SQL.Add('delete * from TEACHER where id=' + qry.FieldByName('记录号').AsString);
query.ExecSQL;
query.Free;
FreshDBGrid;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -