📄 maind.pas
字号:
unit maind;
interface
uses
SysUtils,Windows, Classes, DB, DBTables,forms,registry;
type
TMainDFrm = class(TDataModule)
Database1: TDatabase;
dsArcinfo: TDataSource;
dbUser: TDataSource;
query1: TQuery;
Uquery1: TUpdateSQL;
qutil: TQuery;
dbutil: TDataSource;
dbhistory: TDataSource;
Qgrant: TQuery;
tbhistory: TTable;
Uqutil: TUpdateSQL;
Qclass: TQuery;
UQclass: TUpdateSQL;
dbclass: TDataSource;
query1uID: TStringField;
query1uUser: TStringField;
query1Passwd: TStringField;
query1CreateD: TStringField;
function CheckPermission(uid,fid:string):boolean;
function CheckUser(uID,uPasswd:string) :boolean;
Function FeedUuser(uID :String):String;
Function CheckUserID(UserID:String):boolean;
Function CheckRight(UserID,funct:String):String;
Function FeedfuID(funct:String):string;
Function ChecktbID(tb,tbID,ID:string):boolean;
Function CheckexistID(tb,tbID,ID:string):boolean;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainDFrm: TMainDFrm;
implementation
uses UTIL;
{$R *.dfm}
{ TMainDFrm }
function TMainDFrm.CheckexistID(tb, tbID, ID: string): boolean;
var
q1:TQuery;
begin
q1 := TQuery.Create(application.Owner);
try
q1.DatabaseName := 'main';
q1.SQL.Clear;
q1.SQL.Add('select '+ tbID+' from '+tb);
q1.SQL.Add('where '+tbID+ '='''+ID+'''' );
q1.Close;
q1.Open;
if not q1.Eof then Result:= true
else begin
application.MessageBox('此号不存在!,请在学籍管理录入','退出',mb_ICONWarning+mb_OK);
Result := False;
end;
finally
q1.Free;
end;
end;
function TMainDFrm.CheckPermission(uid, fid: string): boolean;
var
q1:TQuery;
begin
q1 := Tquery.Create(Application.owner);
try
q1.DatabaseName := 'main';
q1.SQL.Clear;
q1.SQL.Add('SELECT * FROM bgrant ' );
q1.SQL.Add('where ');
q1.SQL.Add('uID = '''+ uid+'''');
q1.SQL.Add('AND fID = '''+ fid+'''');
try
q1.Close;
q1.Open;
except
application.MessageBox('无法打开权限表,请与管理员联系!','退出',mb_ICONWarning+mb_OK);
Result := False;
end;
if q1.Eof = false then Result :=q1.FieldByName('gright').AsBoolean
else Result := False;
finally
q1.Free;
end;
if Result = False then
application.MessageBox('很抱歉,目前您没有权限进行此项操作!请与管理员联系!!',
'退出',mb_ICONWarning+mb_OK);
end;
function TMainDFrm.CheckRight(UserID,funct: String):String;
var QCheck:TQuery;
begin
QCheck := TQuery.Create(Application.Owner);
QCheck.databasename := 'main';
QCheck.SQL.Clear;
QCheck.SQL.Add('SELECT bgrant.fID FROM bgrant,funt');
QCheck.SQL.Add('WHERE bgrant.fID=funt.fID AND bgrant.uID='''+UserID+'''');
QCheck.SQL.add('AND funt.fName='''+funct+'''');
try
QCheck.Close;
QCheck.Open;
if QCheck.Eof then Result := ''
else Result := QCheck.Fields.Fields[0].AsString;
finally
QCheck.Free;
end;
end;
function TMainDFrm.ChecktbID(tb, tbID, ID: string): boolean;
var q1:TQuery;
begin
q1 := TQuery.Create(Application.Owner);
try
q1.DatabaseName := 'main';
q1.SQL.Clear;
q1.SQL.Add('select '+ tbID+' from '+tb);
q1.SQL.Add('where '+tbID+ '='''+ID+'''' );
q1.Close;
q1.Open;
if q1.Eof then Result:= false
else begin
if tbID<>'bName' then
application.MessageBox('此号已经重复!','退出',mb_ICONWarning+mb_OK);
Result := True;
end;
finally
q1.Free;
end;
end;
function TMainDFrm.CheckUser(uID, uPasswd: string): boolean;
var
// q2:TQuery;
str2:string;
begin
// q2 := Tquery.Create(Application.Owner);
try
// uPasswd := Encrypt(uPasswd,56789,13579,1);
Qgrant.DatabaseName := 'main';
Qgrant.SQL.Clear;
Qgrant.SQL.Add('SELECT * FROM userinfo ' );
Qgrant.SQL.Add('where ');
Qgrant.SQL.Add('uID = '''+ uID+'''');
// q2.SQL.Add('AND Passwd = '''+uPasswd+'''');
Qgrant.Close;
Qgrant.Open;
str2 := QGrant.FieldByName('Passwd').AsString;
str2 := Decrypt(str2,1357,2,1);
if Qgrant.Eof = True then Result := False
else
if uPasswd = str2 then
Result := True
else
Result := False;
finally
// q2.Free;
end;
end;
function TMainDFrm.CheckUserID(UserID: String): boolean;
var QCheck:TQuery;
begin
QCheck := TQuery.Create(application.Owner);
QCheck.databasename := 'main';
QCheck.SQL.Clear;
QCheck.SQL.Add('SELECT * FROM Userinfo ');
QCheck.SQL.Add('WHERE uID='''+UserID+'''');
try
QCheck.Close;
QCheck.Open;
if QCheck.Eof then Result := false
else begin
Result := True;
Application.MessageBox('此用户已存在','退出',mb_ICONInformation+mb_OK);
end;
finally
QCheck.Free;
end;
end;
function TMainDFrm.FeedfuID(funct: String): string;
var Q1:TQuery;
begin
q1 := Tquery.Create(Application.Owner);
try
Result := '';
q1.DatabaseName := 'main';
q1.SQL.Clear;
q1.SQL.Add('SELECT fid FROM funt ' );
q1.SQL.Add('where ');
q1.SQL.Add('fID = '''+ funct+'''');
q1.Close;
q1.Open;
if q1.Eof = false then Result :=q1.Fields.Fields[0].AsString
else Result := '';
finally
q1.Free;
end;
end;
function TMainDFrm.FeedUuser(uID: String): String;
var Q1:TQuery;
begin
q1 := Tquery.Create(Application.Owner);
try
q1.DatabaseName := 'main';
q1.SQL.Clear;
q1.SQL.Add('SELECT uUser FROM Userinfo ' );
q1.SQL.Add('where ');
q1.SQL.Add('uID = '''+ uid+'''');
try
q1.Close;
q1.Open;
Result := Q1.Fields[0].AsString;
except
// MessageBox(0,'无法打开全限表','退出',mb_ICONInformation+mb_OK);
Result := '';
end;
if q1.Eof = false then Result :=q1.FieldByName('uUser').AsString
else Result := '';
finally
q1.Free;
end;
end;
procedure TMainDFrm.DataModuleCreate(Sender: TObject);
var
FileName:string;
reg:Tregistry;
dbname:string;
sysdir:array[0..255] of char;
begin
FileName := ExtractFilePath
(Application.ExeName)+'INI\set.ini';
dbname := INI_Load_str2(FileName,'DATABASE','NAME','ACCESS');
if dbName = 'SQL' then
database1.AliasName := 'mydata'
else begin
database1.AliasName := 'msdata';
reg := TRegistry.Create;
// if reg.KeyExists('\Software\ODBC\ODBC.INI\'+dbname)= false then
try
dbname := 'msdata';
fileName := ExtractFilepath(Application.ExeName)+
'data.mdb';
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
Reg.WriteString(dbname,'Microsoft Access Driver (*.mdb)');
if reg.OpenKey('\Software\ODBC\ODBC.INI\'+dbname,true) then
begin
GetSystemDirectory(sysdir,255);
reg.WriteString('Driver',sysdir+'\odbcjt32.dll');
reg.WriteString('DBQ',filename);
reg.WriteInteger('DriverID',64);
reg.WriteString('FIL','MS Access');
reg.WriteInteger('SafeTransations',0);
reg.WriteString('UID','');
end;
if reg.OpenKey('\software\ODBC\ODBC.INI\'+dbname+'\Engines\Jet',true) then
begin
reg.WriteString('ImplicitCommitSync','');
reg.WriteInteger('MaxBufferSize',32768);
reg.WriteInteger('PageTimeout',5);
reg.WriteInteger('Threads',3);
reg.WriteString('UserCommitSync','Yes');
end;
finally
reg.CloseKey;
reg.Free;
end;
end;
try
database1.Connected := true;
except
application.MessageBox('连接数据库失败,请设置好数据库再运行!',
'连接失败!',mb_ICONinformation+mb_OK);
application.Terminate;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -