📄 ufrmsystem.pas
字号:
unit ufrmSystem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, ComCtrls, DB, DBClient,
MConnect;
type
TfrmSystem = class(TForm)
pcSystem: TPageControl;
tabsheet: TTabSheet;
Label1: TLabel;
edtusername: TEdit;
Label2: TLabel;
edtpassword: TEdit;
Label3: TLabel;
edtRPassword: TEdit;
Label4: TLabel;
cbAuthority: TComboBox;
Panel1: TPanel;
btnadd: TButton;
btnpost: TButton;
DBGrid1: TDBGrid;
Label5: TLabel;
TabSheet1: TTabSheet;
Label6: TLabel;
btnFind: TButton;
Label7: TLabel;
cbauthority1: TComboBox;
Label8: TLabel;
edtusername1: TEdit;
Label9: TLabel;
edtnewpassword: TEdit;
Label10: TLabel;
edtnewpassword1: TEdit;
btnchang: TButton;
btnApply: TButton;
Label11: TLabel;
DBGrid2: TDBGrid;
btndelete: TButton;
ComboBox1: TComboBox;
procedure btnaddClick(Sender: TObject);
procedure btnpostClick(Sender: TObject);
procedure btnFindClick(Sender: TObject);
procedure btnchangClick(Sender: TObject);
procedure btnApplyClick(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure btndeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmSystem: TfrmSystem;
implementation
uses udmclient;
{$R *.dfm}
//添加用户
procedure TfrmSystem.btnaddClick(Sender: TObject);
begin
//密码、用户名不能为空,而且密码和重复输入的密码要一致
if (edtusername.Text<>'') and (edtpassword.Text<>'')
and (edtpassword.Text=edtrpassword.Text) then
begin
//追加数据
dmclient.cdssystem.Append;
dmclient.cdssystem.FieldByName('username').AsString:=edtusername.Text;
dmclient.cdssystem.FieldByName('password').AsString:=edtpassword.Text;
dmclient.cdssystem.FieldByName('authorization').Value:=cbauthority.Text;
dmclient.cdssystem.FieldByName('lastlogin').Value:=now;
dmclient.cdssystem.Post;//提交到本地缓存
end
else
messagedlg('输入数据错误!',mterror,[mbok],0);
end;
//将本地缓存数据提交到远程数据源
procedure TfrmSystem.btnpostClick(Sender: TObject);
begin
try
//提交到数据源,参数0代表不允许有错误数据
dmclient.cdssystem.ApplyUpdates(0);
showmessage('数据已经更新回数据库服务器!');
//更新本地缓存数据
dmclient.cdssystem.Active:=false;
//相当于向应用程序服务器的adoquery组件添加sql查询
dmclient.cdssystem.CommandText:='select *from systemusers';
dmclient.cdssystem.Open;
except
on e:exception do
messagedlg('错误:'+e.Message,mterror,[mbok],0);
end;
end;
//查找
procedure TfrmSystem.btnFindClick(Sender: TObject);
begin
cbauthority1.Text:='';
edtusername1.Text:='';
edtnewpassword.Text:='';
if combobox1.Text<>'' then
begin
dmclient.cdssystem.Active:=false;
//参数化查询
dmclient.cdssystem.CommandText:='select *from systemusers where username=:username';
//参数的数据类型
dmclient.cdssystem.Params[0].DataType:=ftstring;
//参数值
dmclient.cdssystem.Params.ParamByName('username').AsString:=combobox1.Text;
dmclient.cdssystem.Open;
//找到用户纪录
if dmclient.cdssystem.RecordCount>0 then
begin
//显示各字段信息
cbauthority1.Text:=dmclient.cdssystem.fieldbyname('authorization').Value;
edtusername1.Text:=dmclient.cdssystem.fieldbyname('username').Value;
edtnewpassword.Text:=dmclient.cdssystem.fieldbyname('password').Value;
end
else
messagedlg('没有找到该用户',mterror,[mbok],0);
end
else
messagedlg('非法输入数据',mterror,[mbok],0);
end;
//修改数据
procedure TfrmSystem.btnchangClick(Sender: TObject);
begin
//验证输入的密码
if (edtnewpassword.Text=edtnewpassword1.Text) and
(edtnewpassword.Text<>'') and (edtnewpassword1.Text<>'') then
begin
//编辑状态
dmclient.cdssystem.Edit;
dmclient.cdssystem.FieldByName('username').Value:=edtusername1.Text;
dmclient.cdssystem.FieldByName('password').Value:=edtnewpassword.Text;
dmclient.cdssystem.FieldByName('authorization').Value:=cbauthority1.Text;
dmclient.cdssystem.FieldByName('lastlogin').Value:=now;
dmclient.cdssystem.Post;
end
else
messagedlg('数据输入错误!',mterror,[mbok],0);
end;
//提交到数据源
procedure TfrmSystem.btnApplyClick(Sender: TObject);
begin
dmclient.cdssystem.ApplyUpdates(0);
//更新本地缓冲区数据
dmclient.cdssystem.Active:=false;
dmclient.cdssystem.CommandText:='select *from systemusers';
dmclient.cdssystem.Open;
end;
//填充查找用户名称组合框,以免输入非法用户名
procedure TfrmSystem.TabSheet1Show(Sender: TObject);
begin
dmclient.cdssystem.Active:=false;
dmclient.cdssystem.CommandText:='select *from systemusers';
dmclient.cdssystem.Open;
combobox1.Clear;
while not dmclient.cdssystem.Eof do
begin
combobox1.Items.Add(dmclient.cdssystem.fieldbyname('username').Value);
dmclient.cdssystem.Next;
end;
combobox1.Text:=combobox1.Items[0];
end;
//删除用户
procedure TfrmSystem.btndeleteClick(Sender: TObject);
begin
//提示确认信息
if messagedlg('确定删除系统用户:'+trim(combobox1.Text)+'吗?',
mtconfirmation,[mbYes, mbNo], 0)=mryes then
begin
try
//删除该纪录
dmclient.cdssystem.Delete;
except
on e:exception do
messagedlg('错误:'+e.Message,mterror,[mbok],0);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -