我的delphi三层程序,保存用户id的资料以前是写在客户端注册表中,每次登陆写入,不出任何问题,
后来转移到应用程序服务器中,在应用程序服务器的remote data module,定义一个整型变量,
通过自定义的接口,在客户端登陆时付给这个变量用户id号,以取得相应用户id权限的资料。
可是等程序使用中才发现,原来这个变量被定义成全局变量,不覆盖才怪。
下面是部分代码,请高手出出主意,如何才能在应用程序服务器端保存相应用户的id而不相互覆盖?
unit unitRemoteMod;
interface
procedure SetCurrUserInfo(vCurrUserId, vCurrUserMode: Integer); safecall;
implementation
var
currUserId:integer;
currUserMode:integer;
procedure TcrmServer.SetCurrUserInfo(vCurrUserId, vCurrUserMode: Integer);
begin
currUserId:=vcurrUserId;
currUserMode:=vcurrUserMode;
end;
定义成Private变量。
声明在DataModule的私有部分
比如:
TMyDataModule=class(TDataModule)
private
currUserId:integer;
currUserMode:integer;
public
end;
每连进来一个用户,系统就会创建一个DataModule对象,所以这些对象的私有变量都是独立的,在用户断开连接之前一直都会存在。