📄 mycommon.pas
字号:
unit mycommon;
interface
uses
Windows,Classes,DBTables,SysUtils,Forms,Controls;
var
Database1:TDatabase;
UserName,MyPermission: String; //登录用户名,用户权限
pusernAme,ppassword:string; //连接SQL Server的用户名和口令,请和数据库系统管理员联系
MyGsBm:Array of String; //当前登录用户可管理的部门编号,数组
MyGsNo:TStrings; //当前登录用户可管理的部门名称
function Encrypt(const S: String): String; //用于对字符串加密
procedure CheckServer; //用于判断数据库连接
function CheckUser: Boolean; //用于判断用户登录
implementation
uses server, UserLogIn;
const
key :array[1..15] of word=(35,87,97,110,103,64,88,117,101,95,98,105,110,103,33);
function Encrypt(const S: String): String;
var
j,k,tmp :word;
tmpstr :string;
begin
k :=1;
for j:=1 to Length(s) do
begin
tmp:=Ord(s[j]) xor key[k];
tmpstr:=tmpstr+InttoHex(tmp,2);
k:=k+1;
if k>Length(key) then k:=1;
end;
Result :=tmpstr;
end;
procedure CheckServer;
var
aliasParams: TStringList;
server: String;
serverName: String;
isRetry:boolean;
begin
pusername:='sa';
ppassword:='sapass';
//SQL Server
Database1:=TDatabase.Create(Application);
with Database1 do
begin
AliasName:='GSGL';
DatabaseName:='TestDb';
LoginPrompt:=False;
Params.Clear;
Params.add('USER NAME='+pusername);
Params.add('PASSWORD='+ppassword);
end;
while true do
begin
try
Database1.Open;
break;
except
FrmServer:= TFrmServer.Create(Application);
if FrmServer.ShowModal=mrOk then
begin
if Session.IsAlias('GSGL') then
begin
Session.DeleteAlias('GSGL');
Session.SaveConfigFile;
end;
aliasParams:=TStringList.create;
aliasParams.clear;
aliasParams.add('database name=工时管理');
aliasParams.add('server name='+FrmServer.Edit1.Text);
Session.AddAlias ('GSGL','MSSQL',aliasParams);
Session.SaveConfigFile;
FrmServer.Release;
end
else
break;
end;
end;
end;
function CheckUser: Boolean;
var
QryTemp:TQuery;
i:integer;
begin
if not userlogin.GetUser(UserName,MyPermission) then
begin
result:=False;
exit;
end;
QryTemp:=TQuery.Create(Application);
QryTemp.DatabaseName:='TestDb';
with QryTemp do
begin
SQL.Clear;
SQL.Add('SELECT 部门编号,部门名称');
SQL.Add('FROM 部门信息');
SQL.Add('Where 工时汇报员工号 like '+''''+'%'+username+'%'+'''');
Open;
MyGsNo := TStringList.Create;
SetLength(MyGsBm,RecordCount);
i := 0;
while (not Eof) do
begin
MyGsBm[i] := FieldByName('部门编号').AsString;
MyGsNo.Add(FieldByName('部门名称').AsString+'('+MyGsBm[i]+')');
Next;
i := i+1;
end;
Close;
end;
result:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -