加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER数据库备份/恢复

发布时间:2020-12-12 15:53:56 所属栏目:MsSql教程 来源:网络整理
导读:unit Unit1; interface uses ? Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, ? Dialogs,StdCtrls,DB,ADODB; type ? TForm1 = class(TForm) ??? GroupBox1: TGroupBox; ??? Label1: TLabel; ??? Label2: TLabel; ??? Label3: TLabel

unit Unit1;

interface

uses
? Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
? Dialogs,StdCtrls,DB,ADODB;

type
? TForm1 = class(TForm)
??? GroupBox1: TGroupBox;
??? Label1: TLabel;
??? Label2: TLabel;
??? Label3: TLabel;
??? Edit1: TEdit; //IP输入框
??? Edit2: TEdit; //数据库用户名
??? Edit3: TEdit; //密码
??? GroupBox2: TGroupBox;
??? GroupBox3: TGroupBox;
??? Label4: TLabel;
??? ComboBox1: TComboBox;//选择要操作的数据库下拉框
??? Label5: TLabel;
??? Edit4: TEdit;
??? Button1: TButton;//备份
??? Button2: TButton;//恢复
??? dbcon: TADOConnection;
??? Button3: TButton;//连接数据库
??? DBRS: TADOQuery;
??? SaveDialog1: TSaveDialog;
??? OpenDialog1: TOpenDialog;
??? procedure Button3Click(Sender: TObject);
??? procedure FormClose(Sender: TObject; var Action: TCloseAction);
??? procedure Edit1Change(Sender: TObject);
??? procedure Button1Click(Sender: TObject);
??? procedure Button2Click(Sender: TObject);
? private
??? { Private declarations }
? public
??? { Public declarations }
? end;

var
? Form1: TForm1;

implementation

{$R *.dfm}

//登录数据

procedure TForm1.Button3Click(Sender: TObject);
begin
? if dbcon.Connected then
? begin
??? Application.MessageBox(PCHAR('服务器已连接,请执行下一步!'),PCHAR(self.caption),MB_OK+MB_ICONERROR);
??? exit;
? end;
? if trim(edit1.Text)='' then
? begin
??? Application.MessageBox(PCHAR('请输入服务器地址(IP或机器名)!'),MB_OK+MB_ICONINFORMATION);
??? exit;
? end;
? if trim(edit2.Text)='' then
? begin
??? Application.MessageBox(PCHAR('请输入登录用户名!'),MB_OK+MB_ICONINFORMATION);
??? exit;
? end;
? dbcon.ConnectionString:='Provider=SQLOLEDB.1;Password='+edit3.Text +
?????? ';Persist Security Info=True;User ID='+trim(edit2.Text )+
?????? ';Initial Catalog=master;Data Source='+trim(edit1.Text );
? try
??? dbcon.open;
??? dbrs.SQL.Text :='select? name?? from?? sysdatabases where dbid>5 order by name';
??? dbrs.Open ;
??? while not dbrs.Eof do
??? begin
????? combobox1.Items.Add(dbrs.fieldbyname('name').AsString );
????? dbrs.Next;
??? end;
??? dbrs.Close;
??? Application.MessageBox(PCHAR('连接成功,请选择待备份或恢复的数据库!!'),MB_OK+MB_ICONINFORMATION);
? except
??? Application.MessageBox(PCHAR('连接失败!'),MB_OK+MB_ICONERROR);
? end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
? dbrs.Close;
? dbcon.Close;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
? dbcon.Close;
? combobox1.Items.Clear ;
end;

//备份功能

procedure TForm1.Button1Click(Sender: TObject);
begin
? if not dbcon.Connected then
? begin
??? Application.MessageBox(PCHAR('服务器尚未连接,不能执行备份!'),MB_OK+MB_ICONWARNING);
??? exit;
? end;
? if combobox1.Text ='' then
? begin
??? Application.MessageBox(PCHAR('请选择待备份的数据库!'),MB_OK+MB_ICONWARNING);
??? exit;
? end;
? SaveDialog1.FileName :=combobox1.Text+formatdatetime('_YYYYMMDD_HHMMSS',now);
? if not SaveDialog1.Execute then exit;
? edit4.Text :=SaveDialog1.FileName ;
? try
??? dbcon.Execute('backup database '+combobox1.text+' to disk='+''''+edit4.Text+'''' );
??? Application.MessageBox(PCHAR('备份成功!'),MB_OK+MB_ICONINFORMATION);
? except
??? Application.MessageBox(PCHAR('备份失败!'),MB_OK+MB_ICONERROR);
? end;
end;

//恢复功能

procedure TForm1.Button2Click(Sender: TObject);
begin
? if not dbcon.Connected then
? begin
??? Application.MessageBox(PCHAR('服务器尚未连接,不能执行恢复!'),MB_OK+MB_ICONWARNING);
??? exit;
? end;
? if combobox1.Text ='' then
? begin
??? Application.MessageBox(PCHAR('请选择待恢复的数据库!'),MB_OK+MB_ICONWARNING);
??? exit;
? end;
? if not OpenDialog1.Execute then exit;
? edit4.Text :=OpenDialog1.filename;
? try
??? dbcon.Execute('restore database '+combobox1.text+' from disk='+''''+edit4.Text+'''' );
??? Application.MessageBox(PCHAR('恢复成功!'),MB_OK+MB_ICONINFORMATION);
? except
??? Application.MessageBox(PCHAR('恢复失败!'),MB_OK+MB_ICONERROR);
? end;

end;

end.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读