| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- unit UsersHashProvider;
- interface
- uses
- HashDBProvider, InterfaceDataProvider, SysUtils, WideStrings;
- type
- TUsersHashProvider = class(THashDBProvider)
- private
- function RemoverBridgeServerID(ALoginName: string): string;
- protected
- function GetTableName: string; override;
- procedure Insert(AKey, AValue: WideString; AVersion: Integer); overload; override; stdcall;
- procedure Insert(AHashs: TKeyValues); overload; override; stdcall;
- function FindKeyValue(AKey: WideString): TKeyValue; overload; override; stdcall;
- function Find(AKeys: array of WideString): TKeyValues; overload; override; stdcall;
- end;
- implementation
- { TUsersHashProvider }
- function TUsersHashProvider.Find(AKeys: array of WideString): TKeyValues;
- var
- iLoop, ALen: Integer;
- begin
- ALen := Length(AKeys);
- for iLoop := 0 to ALen - 1 do
- begin
- AKeys[iLoop] := RemoverBridgeServerID(AKeys[iLoop]);
- end;
- Result := inherited Find(AKeys);
- end;
- function TUsersHashProvider.FindKeyValue(AKey: WideString): TKeyValue;
- begin
- AKey := RemoverBridgeServerID(AKey);
- Result := inherited FindKeyValue(WideString(AKey));
- end;
- function TUsersHashProvider.GetTableName: string;
- begin
- Result := 'UsersHash';
- end;
- procedure TUsersHashProvider.Insert(AKey, AValue: WideString;
- AVersion: Integer);
- begin
- AKey := RemoverBridgeServerID(AKey);
- inherited;
- end;
- function TUsersHashProvider.RemoverBridgeServerID(ALoginName: string): string;
- var
- iStart: Integer;
- begin
- iStart := AnsiPos('+', ALoginName);
- if iStart < 0 then
- iStart := 0;
- Result := Copy(ALoginName, iStart + 1, Length(ALoginName) - iStart);
- end;
- procedure TUsersHashProvider.Insert(AHashs: TKeyValues);
- var
- iLoop, ALen: Integer;
- begin
- ALen := Length(AHashs);
- for iLoop := 0 to ALen - 1 do
- begin
- AHashs[iLoop][0] := RemoverBridgeServerID(AHashs[iLoop][0]);
- end;
- inherited;
- end;
- end.
|