📄 servrdmu.pas
字号:
unit servrdmu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComServ, ComObj, VCLCom, StdVcl, BdeProv, DataBkr, mtserv_TLB, Provider,
Db, DBTables, DBClient;
type
TServRDM = class(TDataModule, IServRDM)
EmployTable: TTable;
EmployeeProvider: TProvider;
procedure EmployeeProviderGetData(DataSet: TClientDataSet);
procedure EmployeeProviderUpdateData(DataSet: TClientDataSet);
procedure ServRDMCreate(Sender: TObject);
procedure ServRDMDestroy(Sender: TObject);
procedure EmployeeProviderUpdateError(DataSet: TClientDataSet;
E: EUpdateError; UpdateKind: TUpdateKind;
var Response: TResolverResponse);
private
{ Private declarations }
FClientStr: String;
FClientID : Integer;
public
{ Public declarations }
protected
function Get_EmployeeProvider: IProvider; safecall;
procedure DoLogin(const ClientStr: WideString; var ClientID: Integer); safecall;
end;
var
ServRDM: TServRDM;
implementation
uses ServMain;
{$R *.DFM}
procedure TServRDM.EmployeeProviderGetData(DataSet: TClientDataSet);
begin
ServMainForm.AddEventToList('Data Retrieved', FClientID);
end;
procedure TServRDM.EmployeeProviderUpdateData(DataSet: TClientDataSet);
begin
ServMainForm.AddEventToList('Data Updated', FClientID);
end;
function TServRDM.Get_EmployeeProvider: IProvider;
begin
Result := EmployeeProvider.Provider;
end;
procedure TServRDM.DoLogin(const ClientStr: WideString;
var ClientID: Integer);
begin
FClientStr := ClientStr;
ServMainForm.AddEventToList('Log in', FClientID);
ClientID := FClientID;
ServMainForm.AddClientToList(ClientStr, ClientID);
end;
procedure TServRDM.ServRDMCreate(Sender: TObject);
begin
{ Retrieve the next client login id }
FClientID := ServMainForm.GetNextID;
end;
procedure TServRDM.ServRDMDestroy(Sender: TObject);
begin
{ Remove the client ID from the server's global list }
ServMainForm.RemoveID(FClientID);
{ Indicate that server is logging out in the list view }
ServMainForm.AddEventToList('Log out', FClientID);
{ Remove the client from the list view }
ServMainForm.RemoveClientFromList(FClientID);
end;
procedure TServRDM.EmployeeProviderUpdateError(DataSet: TClientDataSet;
E: EUpdateError; UpdateKind: TUpdateKind;
var Response: TResolverResponse);
begin
{ Add the error information to the event list. }
ServMainForm.AddEventToList(E.Message, FClientID);
{ Do not apply updates to the server }
Response := rrSkip;
end;
initialization
TComponentFactory.Create(ComServer, TServRDM,
Class_ServRDM, ciMultiInstance);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -