📄 admin.pas.~13~
字号:
unit admin;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs,IBServices;
type
TAdmin = class(TObject)
public
constructor Create;
procedure Backup(DbName:String);
procedure ChangeUserPsw(UserName,NewPSW:String);
procedure clearData;
procedure createLLY;
procedure Restore(DBName:String);
end;
implementation
uses unitDatamodule;
{
************************************ TAdmin ************************************
}
constructor TAdmin.Create;
begin
dm.IBSS.Params.Clear;
dm.IBSS.Params.Add('user_name=SYSDBA');
dm.IBSS.Params.Add('password='+dm.IBDB.Params.Values['password']);
dm.IBBS.Params.Clear;
dm.IBBS.Params.Add('user_name=SYSDBA');
dm.IBBS.Params.Add('password='+dm.IBDB.Params.Values['password']);
dm.IBRS.Params.Clear;
dm.IBRS.Params.Add('user_name=SYSDBA');
dm.IBRS.Params.Add('password='+dm.IBDB.Params.Values['password']);
end;
procedure TAdmin.Backup(DbName:String);
begin
try
screen.Cursor:=crHourGlass;
dm.IBBS.DatabaseName:=dm.IBDB.DatabaseName;
dm.IBBS.BackupFile.Clear;
dm.IBBS.BackupFile.Add(DBName);
dm.IBBS.Attach;
dm.IBBS.ServiceStart;
while not dm.IBBS.Eof do
begin
Application.ProcessMessages;
dm.IBBS.GetNextLine;
end;
Application.MessageBox('备份数据库成功!','提示',MB_OK or MB_ICONINFORMATION);
finally
if dm.IBBS.Active=true then
dm.IBBS.Detach;
screen.Cursor:=crDefault;
end;
end;
procedure TAdmin.ChangeUserPsw(userName,NewPSW:String);
begin
dm.IBSS.Active:=false;
dm.IBSS.UserName:=userName;
dm.IBSS.Password:=NewPsw;
dm.IBSS.Active:=true;
dm.IBSS.ModifyUser;
Application.MessageBox('更改密码成功!','提示',MB_OK or MB_ICONINFORMATION);
dm.IBDB.Close;
if Uppercase(userName)='SYSDBA' then
begin
dm.IBBS.Active:=false;
dm.IBRS.Active:=false;
dm.IBSS.Active:=false;
dm.IBDB.Params.Values['password']:=NewPSW;
dm.IBBS.Params.Values['password']:=NewPSW;
dm.IBRS.Params.Values['password']:=NewPSW;
dm.IBSS.Params.Values['password']:=NewPSW;
end;
end;
procedure TAdmin.clearData;
begin
dm.Trans1.Active:=false;
dm.Query1.Close;
dm.Query1.SQL.Text:='delete from student';
dm.Query1.ExecSQL;
dm.Query1.Close;
dm.Query1.SQL.Text:='delete from ach1';
dm.Query1.ExecSQL;
dm.Query1.Close;
dm.Query1.SQL.Text:='delete from ach2';
dm.Query1.ExecSQL;
dm.Query1.Close;
dm.Query1.SQL.Text:='delete from achieve';
dm.Query1.ExecSQL;
try
dm.trans1.Commit;
Application.MessageBox('清空数据库完毕!','提示',MB_OK or MB_ICONINFORMATION);
except
dm.trans1.Rollback;
Application.MessageBox('清空数据库失败!','提示',MB_OK or MB_ICONERROR);
end;
end;
procedure TAdmin.createLLY;
var
i: Integer;
begin
dm.IBSS.Active:=true;
dm.IBSS.DisplayUsers;
for i:=0 to dm.IBSS.UserInfoCount-1 do
begin
if dm.IBSS.UserInfo[i].UserName='LLY1' then
exit;
end;
dm.IBSS.Active:=false;
dm.IBSS.Active:=true;
dm.IBSS.UserName:='LLY1';
dm.IBSS.Password:='65432';
dm.IBSS.AddUser;
dm.IBSS.Active:=false;
dm.IBSS.Active:=true;
dm.IBSS.UserName:='LLY2';
dm.IBSS.Password:='65432';
dm.IBSS.AddUser;
dm.IBSS.Active:=false;
end;
procedure TAdmin.Restore(DBName:String);
begin
try
screen.Cursor:=crHourGlass;
dm.IBDB.Close;
dm.IBRS.DatabaseName.Clear;
dm.IBRS.DatabaseName.Add(dm.IBDB.DatabaseName);
dm.IBRS.BackupFile.Clear;
dm.IBRS.BackupFile.Add(DBName);
dm.IBRS.Attach;
dm.IBRS.Options:=[replace];
dm.IBRS.ServiceStart;
while not dm.IBRS.Eof do
begin
Application.ProcessMessages;
dm.IBRS.GetNextLine;
end;
Application.MessageBox('成功恢复数据库!','提示',MB_OK or MB_ICONINFORMATION);
finally
if dm.IBRS.Active then
dm.IBRS.Detach;
screen.Cursor:=crDefault;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -