⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmsystem.pas

📁 本文件采用了c/s结构的分布式应用系统
💻 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 + -