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

📄 business_restor.pas

📁 EasyGasDpr 瓶装液化气 钢瓶 SQL,用户名:SYSTEM 密码:空
💻 PAS
字号:
unit BUSINESS_RESTOR;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ADODB, DB, ActnList,INIPAS,
  StdActns, registry, EASY_GASMAIN;

type
  Trestoredlg = class(TForm)
    ADOC: TADOConnection;
    ADOCOMM: TADOCommand;
    Edit2: TLabeledEdit;
    Edit3: TLabeledEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Edit4: TLabeledEdit;
    Edit1: TLabeledEdit;
    Bevel1: TBevel;
    ActionList1: TActionList;
    OPE: TFileOpen;
    WINSA: TCheckBox;
    DBPATH: TLabeledEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure OPEAccept(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBPATHExit(Sender: TObject);
    procedure WINSAClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  restoredlg: Trestoredlg;


implementation

{$R *.dfm}
Function GetSQLPath:String;
var REG:TRegistry;
Begin
  REG:=TRegistry.Create;
  With REG do
  begin
    try
    RootKey:=HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\MSSQLServer\Setup',false);
    Result:=REG.ReadString('SQLPath');
    finally
    CloseKey;
    REG.Free;
    end;
  end;
end;

procedure Trestoredlg.BitBtn1Click(Sender: TObject);
var S:String;
begin
  try
    ADOC.Close;
    if WINSA.checked then ADOC.connectionstring:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source='+Edit1.text else
    ADOC.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+Edit2.text+';Initial Catalog=master;Data Source='+Edit1.text+';password='+Edit3.text;
    S:=StringReplace(ADOC.ConnectionString,'master','EASY_GAS',[rfReplaceAll, rfIgnoreCase]);
    WriteINIStr('网络设置','数据库连接字符',S);
    ADOC.Open;
    ADOCOMM.commandtext:='RESTORE DATABASE EASY_GAS FROM DISK = '+#39+Edit4.text+#39+' WITH MOVE '+#39+'EASY_GAS_data'+#39+' TO '+#39+DBPATH.text+'EASY_GAS_NOW.mdf'+#39+', MOVE '+#39+'EASY_GAS_log'+#39+' TO '+#39+DBPATH.text+'EASY_GAS_NOW.ldf'+#39;
    ADOCOMM.Execute;
    Showmessage('数据库恢复成功,'+#13+'原数据库已恢复!');
  Except
    Showmessage('数据库恢复失败!');
    Exit;
  end;
    Close;
end;

procedure Trestoredlg.OPEAccept(Sender: TObject);
begin
  Edit4.Text:=OPE.Dialog.FileName;
end;

procedure Trestoredlg.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Case key of
  VK_RETURN:PostMessage(TWincontrol(Sender).handle,WM_KEYDOWN,VK_TAB,0);
  end;
end;

procedure Trestoredlg.BitBtn2Click(Sender: TObject);
begin
  close;
end;

procedure Trestoredlg.FormCreate(Sender: TObject);
var REG:TREGistry;
begin
  Bitbtn1.enabled:=DirectoryExists(GetSQLPath);
  Edit1.Text:=ReadINIStr('数据还原','服务器IP',PCNAME);
  Edit2.Text:=ReadINIStr('数据还原','用户名称','SA');
  Edit3.Text:=ReadINIStr('数据还原','用户密码','');
  Edit4.Text:=ReadINIStr('数据还原','文件位置',ClientDIR+'DATABASE');
  REG:=TRegistry.Create;
  With REG do
  begin
    try
    RootKey:=HKEY_LOCAL_MACHINE;
    if Not KeyExists('Software\Microsoft\MSSQLServer\Setup') then
    Begin
      Showmessage('您没有安装Microsoft SQL Server!程序无法安装!');
      Halt;
    end;
    OpenKey('Software\Microsoft\MSSQLServer\Setup',false);
    DBPATH.Text:=REG.ReadString('SQLDataRoot');
    DBPATH.OnExit(DBPATH);
    finally
    CloseKey;
    REG.Free;
    end;
  end;

end;

procedure Trestoredlg.DBPATHExit(Sender: TObject);
begin
  if DBPATH.text[Length(DBPath.Text)]<>'\' then DBPATH.Text:=DBPATH.Text+'\';
end;

procedure Trestoredlg.WINSAClick(Sender: TObject);
begin
  Edit2.Enabled:=Not WINSA.Checked;
  Edit3.Enabled:=Not WINSA.Checked;
end;


end.

⌨️ 快捷键说明

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