⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.~pas

📁 适合新手 绝对精品 档案管理系统 本人花钱购买来的源代
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Main;        //MDI主窗体项目

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, StdActns, ActnList, ImgList, Menus, StdCtrls,
  Buttons, DB, ADODB;

type
  TF_Main = class(TForm)
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    MainMenu1: TMainMenu;
    M_Archives: TMenuItem;
    M_Manage: TMenuItem;
    M_Borrow: TMenuItem;
    M_Return: TMenuItem;
    M_Database: TMenuItem;
    M_Backup: TMenuItem;
    M_Restore: TMenuItem;
    M_Window: TMenuItem;
    M_Win_Cascade: TMenuItem;
    M_Win_Hor: TMenuItem;
    M_Win_Ver: TMenuItem;
    M_Win_Min: TMenuItem;
    M_Win_Close: TMenuItem;
    M_Help: TMenuItem;
    SBdagl: TSpeedButton;
    SBdaflgl: TSpeedButton;
    SBdaggl: TSpeedButton;
    SBdajy: TSpeedButton;
    SBdbfhf: TSpeedButton;
    SBdbfbf: TSpeedButton;
    SBdagh: TSpeedButton;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    SBsys: TSpeedButton;
    SBquit: TSpeedButton;
    Label3: TLabel;
    Label11: TLabel;
    M_fuzhu: TMenuItem;
    M_Class: TMenuItem;
    M_Tank: TMenuItem;
    M_quit: TMenuItem;
    ActionList1: TActionList;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    WindowsCloseAll: TAction;
    AQ_Back_Restore1: TADOQuery;
    ADOConnection1: TADOConnection;
    procedure WindowCloseAllExecute(Sender: TObject);
    procedure WindowCloseAllUpdate(Sender: TObject);
    procedure M_ClassClick(Sender: TObject);
    procedure M_TankClick(Sender: TObject);
    procedure M_ManageClick(Sender: TObject);
    procedure M_BorrowClick(Sender: TObject);
    procedure M_ReturnClick(Sender: TObject);
    procedure M_BackupClick(Sender: TObject);
    procedure M_RestoreClick(Sender: TObject);
    procedure M_HelpClick(Sender: TObject);
    procedure SBdaglClick(Sender: TObject);
    procedure SBdagglClick(Sender: TObject);
    procedure SBdaflglClick(Sender: TObject);
    procedure SBdbfbfClick(Sender: TObject);
    procedure SBdbfhfClick(Sender: TObject);
    procedure SBsysClick(Sender: TObject);
    procedure SBdaghClick(Sender: TObject);
    procedure SBdajyClick(Sender: TObject);
    procedure M_quitClick(Sender: TObject);
    procedure SBquitClick(Sender: TObject);
    procedure WindowsCloseAllExecute(Sender: TObject);
    procedure WindowsCloseAllUpdate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function CreateForm(CForm:TForm):boolean;  //用户自定义MDIChild子窗体存在判断函数
    procedure BackupDatabase(FileName:AnsiString);  //用户自定义备份SQL Server 2000数据库函数
    procedure RestoreDatabase(FileName:AnsiString); //用户自定义还原SQL Server 2000数据库函数
  end;

var
  F_Main: TF_Main;

implementation
uses  DataModule,Archives_Class,Archives_Tank,Archives_Manage,
      Borrow_Return,Archives_AboutBox,IniFiles;  //引用其它项目 
{$R *.dfm}

function TF_Main.CreateForm(CForm:TForm):boolean;
var  {*****用户自定义MDIChild子窗体存在判断函数*****}
    No:integer;
    FormExist:boolean;
begin
    FormExist := false;
    if (CForm = NiL) then   //判断CForm是否为空
       begin
       CreateForm := false; //函数返回值赋false
       exit;                //退出本函数
       end;
    for No:=0 to Screen.FormCount-1 do //判断窗体是否已经被建立起来
      begin
      if Screen.Forms[No].ClassType = CForm.ClassType then  //窗体存在判断
        FormExist := true;  //窗体已经创建,用户没看到可能是处于隐藏或者最小化
      end;
    if FormExist = false then //窗体没有创建,返回false
      CreateForm := false;
    if CForm.WindowState = wsMinimized then  //窗体已经创建,但处于最小化状态
      ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
    else                                     //窗体已经创建,但处于隐藏状态
      ShowWindow(CForm.Handle,SW_SHOWNA);    //显示窗体
    if not CForm.Visible then
      CForm.Visible := true;
    CForm.BringToFront;  //当前窗口显示在最面前
    CForm.SetFocus;      //把光标的焦点转移到刚才创建或显示的窗口上
    CreateForm := true;    //函数返回值赋true
end;

procedure TF_Main.BackupDatabase(filename:AnsiString);
var  {*****用户自定义备份SQL Server 2000数据库函数*****}
    Backup,str:AnsiString;
    ini:TIniFile;
begin
    //////////////////////
    DM.AQ_Back_Restore.Close;      //关闭数据库备份还原查询控件
    DM.AQ_Back_Restore.SQL.Clear;  //清除SQL语句
    DM.AQ_Back_Restore.SQL.Add('use master');
    //////////////////////
    DM.AQ_Back_Restore.Close;      //关闭数据库备份还原查询控件
    DM.AQ_Back_Restore.SQL.Clear;  //清除SQL语句
    Backup := 'BACKUP DATABASE ';  //生成数据库备份命令赋Backup字符串
    //打开档案管理系统数据库INI配置文件,如果不存在则创建
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    Backup := Backup+str;  //追加档案管理系统数据库名,+1的目的是前面有个空格
    DM.AQ_Back_Restore.SQL.Add(Backup); //增加备份数据库RESTORE命令SQL语句
    str := 'TO DISK =''';  //生成备份数据库文件的路径和文件名字符串
    str := str+filename;
    str := str+'''';
    DM.AQ_Back_Restore.SQL.Add(str);  //增加备份数据库的路径和文件名字符串SQL语句
    DM.AQ_Back_Restore.SQL.Add('WITH init'); //备份数据库SQL语句WITH参数设定,完整备份数据库
    try        //捕捉异常
      DM.AQ_Back_Restore.ExecSQL;     //执行SQL语句,但不打开数据集
    except     //抛出异常
      Application.MessageBox('数据库备份出错', '错误!', MB_OK);
    end;
end;

procedure TF_Main.RestoreDatabase(filename:AnsiString);
var  {*****用户自定义还原SQL Server 2000数据库函数*****}
   Restore,str:AnsiString;
   ini:TIniFile;
begin
    AQ_Back_Restore1.Close;       //关闭数据库备份还原查询控件
    AQ_Back_Restore1.SQL.Clear;  //清除SQL语句
    ADOConnection1.Connected := true;  //启动与数据库服务器的连接
{   //////////////////////////
   str :='select spid from master..sysprocesses where dbid=db_id(''archives'')';
   DM.AQ_Back_Restore.SQL.Add(str);
   DM.AQ_Back_Restore.open;
 While DM.AQ_Back_Restore.eof = False do
    begin
        str:='kill 51';
        DM.AQ_Back_Restore.SQL.Add(str);
        DM.AQ_Back_Restore.ExecSQL;
        DM.AQ_Back_Restore.MoveBy(1);
    end;
   ///////////////////////////////
}
    Restore := 'RESTORE DATABASE ';  //生成数据库还原命令赋Restore字符串
    //打开档案管理系统数据库INI配置文件
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI' ));
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    Restore := Restore+str;  //追加档案管理系统数据库名
    AQ_Back_Restore1.SQL.Add(Restore);     //增加还原数据库SQL命令语句
    str := 'FROM DISK = ''';   //生成还原数据库文件的路径和文件名字符串
    str := str+filename;
    str := str+'''';
    AQ_Back_Restore1.SQL.Add(str); //增加还原数据库文件的路径和文件名字符串SQL语句
  //  AQ_Back_Restore1.SQL.Add(' WITH norecovery'); //还原数据库SQL语句WITH参数设定,完整还原数据库
     AQ_Back_Restore1.SQL.Add(' WITH replace'); //还原数据库SQL语句WITH参数设定,完整还原数据库
    try        //捕捉异常
      AQ_Back_Restore1.ExecSQL;     //执行SQL语句,但不打开数据集
    except     //抛出异常
      Application.MessageBox('数据库恢复出错', '错误!', MB_OK);
    end;
 {   ///
    DM.ADOConnection.Connected := true;  //启动与数据库服务器的连接
      DM.AT_Class.Active := true;          //激活各个数据表与服务器的连接
      DM.AT_Tank.Active := true;
      DM.AT_Borrow.Active := true;
      DM.AT_Return.Active := true;
      DM.AT_Count.Active := true;
      DM.AQ_Manage.Active := true;
    ///
}
{
begin
    DM.AQ_Back_Restore.Close;       //关闭数据库备份还原查询控件
    DM.AQ_Back_Restore.SQL.Clear;  //清除SQL语句
   //////////////////////////
   str :='select spid from master..sysprocesses where dbid=db_id(''archives'')';
   DM.AQ_Back_Restore.SQL.Add(str);
   DM.AQ_Back_Restore.open;
 While DM.AQ_Back_Restore.eof = False do
    begin
        str:='kill 51';
        DM.AQ_Back_Restore.SQL.Add(str);
        DM.AQ_Back_Restore.ExecSQL;
        DM.AQ_Back_Restore.MoveBy(1);
    end;
   ///////////////////////////////

    Restore := 'RESTORE DATABASE ';  //生成数据库还原命令赋Restore字符串
    //打开档案管理系统数据库INI配置文件
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI' ));
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    Restore := Restore+str;  //追加档案管理系统数据库名
    DM.AQ_Back_Restore.SQL.Add(Restore);     //增加还原数据库SQL命令语句
    str := 'FROM DISK = ''';   //生成还原数据库文件的路径和文件名字符串
    str := str+filename;
    str := str+'''';
    DM.AQ_Back_Restore.SQL.Add(str); //增加还原数据库文件的路径和文件名字符串SQL语句
    DM.AQ_Back_Restore.SQL.Add(' WITH norecovery'); //还原数据库SQL语句WITH参数设定,完整还原数据库
    ///
      DM.ADOConnection.Connected := false;  //启动与数据库服务器的连接
      DM.ADOConnection.Close;
      dm.AT_Class.Close;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -