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

📄 unit2.pas

📁 有关delphi的一个分布式开发实例,是客户-服务器模式的
💻 PAS
字号:
unit Unit2;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
  DBClient, Project1_TLB, StdVcl, Provider, DB, DBTables;

type
  Tlogin_server = class(TRemoteDataModule, Ilogin_server)
    Database1: TDatabase;
    Query1: TQuery;
    DataSetProvider1: TDataSetProvider;
    procedure RemoteDataModuleDestroy(Sender: TObject);
  private
    { Private declarations }
     name: String;
  protected
    class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
    procedure login(const user, passwd: WideString); safecall;
  public
    { Public declarations }
  end;

implementation

uses Unit1;

{$R *.DFM}

class procedure Tlogin_server.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
  if Register then
  begin
    inherited UpdateRegistry(Register, ClassID, ProgID);
    EnableSocketTransport(ClassID);
    EnableWebTransport(ClassID);
  end else
  begin
    DisableSocketTransport(ClassID);
    DisableWebTransport(ClassID);
    inherited UpdateRegistry(Register, ClassID, ProgID);
  end;
end;

procedure Tlogin_server.login(const user, passwd: WideString);
var
 str: String;
begin
 Query1.Close;
 Query1.SQL.Clear;
 str:='Select * from login where user_id='''+user+'''';
 str:=str+' and passwd='''+passwd+'''';
 Query1.SQL.Add(str);
 Query1.Prepare;
 Query1.Open;
 if not Query1.IsEmpty then
  begin
   name:=user+'-'+Query1.fieldbyname('name').AsString;
   Form1.ListBox1.Items.Add(user+'-'+name);
   Form1.Memo1.Lines.Add('['+datetimetostr(now)+']: '+name+'进入服务器');
  end
 else
  Form1.Memo1.Lines.Add('['+datetimetostr(now)+']: '+'非法用户'+user+
                          '企图进入服务器');
end;

procedure Tlogin_server.RemoteDataModuleDestroy(Sender: TObject);
begin
 Form1.ListBox1.Items.Delete(Form1.ListBox1.Items.IndexOf(name));
 Form1.Memo1.Lines.Add('['+datetimetostr(now)+']: '+name+'离开服务器');
end;

initialization
  TComponentFactory.Create(ComServer, Tlogin_server,
    Class_login_server, ciMultiInstance, tmApartment);
end.

⌨️ 快捷键说明

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