srvrdm.pas

来自「关于利用DELPHI来进行企业级方案解决的著作的附书源码」· PAS 代码 · 共 90 行

PAS
90
字号
unit SrvrDM;


interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComServ, ComObj, VCLCom, StdVcl, DataBkr, DBClient, Server_TLB,
  Db, DBTables, Provider;

type
  TLoginDemo = class(TRemoteDataModule, ILoginDemo)
    loginProvider: TDataSetProvider;
    Database1: TDatabase;
    Query1: TQuery;
    procedure LoginDemoCreate(Sender: TObject);
    procedure LoginDemoDestroy(Sender: TObject);
  private
    FLoggedIn: Boolean;
    FUserName,FGroup: string;
    FUsedmodel: string;
    procedure CheckLogin;
  protected                
    procedure Login(const UserName, Password,usedmodel: WideString); safecall;
  end;

var
  LoginDemo: TLoginDemo;

implementation

uses SrvrFrm;

{$R *.DFM}

procedure TLoginDemo.CheckLogin;
begin
  if not FLoggedIn then
    raise Exception.Create('Not logged in');
end;

procedure TLoginDemo.Login(const UserName, Password,usedmodel: WideString);
var    tempstr:string;
begin

  with query1 do
  begin
    close;
    sql.clear;
    tempstr:='select a.id,a.name,a.password,a.group_id,b.description  ';
    tempstr:=tempstr+'from jbqk a,user_lev b  ';
    tempstr:=tempstr+'where a.group_id=b.group_id and a.id=''';
    tempstr:=tempstr+UserName+''' and a.password='''+Password+'''';
    sql.add(tempstr);
    open;
  end;
  if not query1.IsEmpty then
  begin
    FUserName := UserName+'-'+query1.fieldbyname('name').value;
    FGroup:=query1.fieldbyname('description').value;
    FLoggedIn := True;
    FUsedmodel :=Usedmodel;
    Form1.ListBox1.Items.Add(FUserName);
    Form1.memo1.lines.Add('['+datetimetostr(now)+']'+FGroup+':'+FUserName+'进入'+Fusedmodel);
  end
  else
  begin
    FLoggedIn := false;
    Form1.memo1.lines.Add('['+datetimetostr(now)+']'+FGroup+':'+FUserName+'非法进入'+Fusedmodel);
  end;
end;

procedure TLoginDemo.LoginDemoCreate(Sender: TObject);
begin
  FLoggedIn := False;

end;

procedure TLoginDemo.LoginDemoDestroy(Sender: TObject);
begin
  { Remove the Name from the list}
  with Form1.ListBox1.Items do Delete(IndexOf(FUserName));
  Form1.memo1.lines.Add('['+datetimetostr(now)+']'+FGroup+':'+FUserName+'离开'+Fusedmodel);
end;

initialization
  TComponentFactory.Create(ComServer, TLoginDemo,
    Class_LoginDemo, ciMultiInstance, tmSingle);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?