利用SQL语句来完成对SQL Server数据库的备份与还原功能 仅以练习

完成代码如下:

------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ExtCtrls;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Bevel1: TBevel;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button6: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses unit2,unit3,unit4;

procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
begin
  str:='select number as 编号,name as 姓名,tel as 联系电话 from info';
  AdoQuery1.Close ;
  AdoQuery1.SQL.Clear ;
  AdoQuery1.SQL.Add(str);
  AdoQuery1.Open ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  form2:=Tform2.Create(form1);
  form2.Show ;
  ADOQuery1.Edit ;
  form2.Edit2.Text :=ADOQuery1.FieldByName('编号').AsString ;
  form2.edit3.Text :=ADOQuery1.FieldByName('姓名').AsString ;
  form2.edit4.Text :=ADOQuery1.FieldByName('联系电话').AsString ;
end;

//数据库的INI文件配置(该模块代码见下----)

procedure TForm1.Button3Click(Sender: TObject);
begin
  CfgForm:=TCfgForm.Create(form1);
  CfgForm.Show ;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  ss,sd:string;
begin
  sd:=extractfilepath(paramstr(0))+'backup/'+datetostr(now)+'.mdf';
  //SaveDialog1.Execute ;
  ss:='backup database test to disk='''+sd+'''';
  //showmessage(sd);
  if fileexists(sd) then
    begin
    if messagebox(0,' 今天备份文件已存在!是否覆盖?','警告',MB_OKCANCEL)= IDCANCEL then
      exit
    else
      DeleteFile(sd);
      ADOQuery1.Close ;
      ADOQuery1.SQL.Clear ;
      ADOQuery1.SQL.Add(ss);
      ADOQuery1.ExecSQL ;
      showmessage('数据库备份完成!'); ;
      exit;
    end
  else
    begin
    ADOQuery1.Close ;
    ADOQuery1.SQL.Clear ;
    ADOQuery1.SQL.Add(ss);
    ADOQuery1.ExecSQL ;
    showmessage('数据库备份完成!');
    end;
  {st:=SaveDialog1.FileName ;
  ss:='backup database test to disk='''+st+'.mdf''';
  if fileexists(st+'.mdf') then
    if Messagebox(0,'该文件已存在!,您是否要覆盖该文件?','警告',MB_OKCANCEL)=IDCANCEL then
       exit
    else
      begin
      deletefile(st+'.mdf');
      ADOQuery1.Close ;
      ADOQuery1.SQL.Clear ;
      ADOQuery1.SQL.Add(ss);
      ADOQuery1.ExecSQL ;
      showmessage('数据库备份完成!');
      end
  else
  begin
    //showmessage(ss);
    //DataModule4.ADOConnection1.ConnectionString :='';
    ADOQuery1.Close ;
    ADOQuery1.SQL.Clear ;
    ADOQuery1.SQL.Add(ss);
    ADOQuery1.ExecSQL ;
    showmessage('数据库备份完成!');
  end;}
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  ss,sql:string;
begin
  SaveDialog1.Execute ;
  ss:=SaveDialog1.FileName ;
  sql:='use master restore database test from disk='''+ss+'''';
  if messagebox(0,' 您确认要执行恢复操作吗?','警告',MB_OKCANCEL)= IDCANCEL then
     exit
  else
  begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear ;
  ADOQuery1.SQL.Add(sql);
  ADOQuery1.ExecSQL ;
  showmessage('数据库恢复完成!');
  end;
end;

procedure TForm1.Button6Click(Sender: TObject); //获取当前路径
begin
  //GetModuleFileName();
  ShowMessage(extractfilepath(application.exename));
  ShowMessage(extractfilepath(paramstr(0)));
end;

end.

---------------------------------

数据库实现INI文件配置 完整代码:

---------------------------------

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,INIFiles;

type
  TCfgForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CfgForm: TCfgForm;

implementation
var
  myinifile:Tinifile;
{$R *.dfm}

procedure TCfgForm.Button2Click(Sender: TObject);
begin
  CfgForm.Free ;
end;

procedure TCfgForm.FormCreate(Sender: TObject);
var
  filename:string;
begin
  filename:=ExtractFilePath(paramstr(0))+'SQLcfg.ini';
  myinifile:=Tinifile.Create(filename);
  edit1.Text :=myinifile.ReadString('参数配置','Data Source','');
  edit2.Text :=myinifile.ReadString('参数配置','Initial Catalog','');
  edit3.Text :=myinifile.ReadString('参数配置','User ID','');
  edit4.Text :=myinifile.ReadString('参数配置','Password','');
end;

procedure TCfgForm.Button1Click(Sender: TObject);
begin
  myinifile.WriteString('参数配置','Data Source',edit1.text);
  myinifile.WriteString('参数配置','Initial Catalog',edit2.text);
  myinifile.WriteString('参数配置','User ID',edit3.text);
  myinifile.WriteString('参数配置','Password',edit4.text);
  myinifile.Destroy ;
  CfgForm.Release ;
end;

procedure TCfgForm.Button3Click(Sender: TObject);
begin
  showmessage(inttostr(CfgForm.InstanceSize));
end;

end.
-------------------------------

SQLcfg.ini 文件内容:

---------------

[参数配置]
Data Source=BULY
Initial Catalog=test
User ID=sa
Password=1001

---------------

2009-11-04

数据库的备份与还原+INI文件数据库参数配置相关推荐

  1. 达梦数据库之备份与还原

    备份与还原是DBA必备的技能之一,为防止数据的误操作.误删除等突发情况,所以备份还原至关重要,一下从几方面共同学习一下达梦数据库的备份与还原基础知识. 一.概述 达梦数据库的备份还原方式:物理备份还原 ...

  2. 达梦数据库的备份、还原和恢复

    一.备份.还原和恢复的意义 备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态.还原与恢复的主要目的是将目标数据库恢复到备份结束时刻的状态. 二.备份 ...

  3. DQL查询语句约束数据库设计备份和还原

    DQL:查询语句 1. 排序查询* 语法:order by 子句* order by 排序字段1 排序方式1 , 排序字段2 排序方式2...* 排序方式:* ASC:升序,默认的.* DESC:降序 ...

  4. Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题

    MySQL 数据库的备份与还原 第一章:数据库的导入与导出 ① 数据库的导出 ② 大数据量下 mysqldump 的导出优化 ③ 数据库的导出 第一章:数据库的导入与导出 ① 数据库的导出 需要用到 ...

  5. MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  6. [JavaWeb-MySQL]数据库的备份和还原

    数据库的备份和还原 1. 命令行:* 语法:* 备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径* 还原:1. 登录数据库2. 创建数据库3. 使用数据库4. 执行文 ...

  7. SQL2008数据库的备份与还原

    一.上期小编分享了SQL2000数据库的备份与还原,这期小编再来分享下SQL2008数据库的备份与还原. 二.SQL2008数据库的备份 1.登录sql server management studi ...

  8. java day27【DQL:查询语句、约束 、多表之间的关系 、范式 、数据库的备份和还原】...

    第一章  DQL:查询语句 1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的. ...

  9. Oracle多个数据库备份和还原,oracle 多数据库还原

    Navicat工具Oracle数据库复制 or 备用.恢复功能(评论都在谈论需要教) GXPT它是一个分布式系统,该系统包括一个临时许可系统.基本系统.教学评价体系.考试系统,每个系统都有自己的ora ...

最新文章

  1. linux shell面试题(一)
  2. python使用matplotlib绘制一条正弦曲线(plot函数可视化sine plot)
  3. 简单说一下kafka 与其他消息队列
  4. 一些比较少用但比较有用的linux命令备忘
  5. 腾讯TBS X5 WebView的简单使用
  6. java restful中文乱码_restful服务接口访问乱码 和 505错误
  7. vb还是python强大-VB已死,Python当立 | 忆云竹
  8. Linux命令之awk:运算与判断(三)
  9. unity灯光Lightmapping、LightProbes
  10. SHELL中使用sed替换文本
  11. hot编码 字符one_使用字符级RNN进行名字分类
  12. MDUI 输入确认框
  13. 移动通信网络协议 — GTP-U 隧道协议
  14. 介绍一种冷门但简单的双拼方案——紫光双拼
  15. vue怎么在地址栏隐藏路由
  16. 人人 突破 权限 相册 查看
  17. 【林达华】How To Get A Solution
  18. DZ插件 [1314]模板自由切换 2.0.1版
  19. java 执行长事物_狂 热 和 许 诺
  20. 百度开放云java+tomcat部署web项目-小皇帝詹姆斯

热门文章

  1. C#通过SendMessage消息来发送接收文本消息设定控件text
  2. C语言编写的文本文件/二进制文件格式互换
  3. 三张图-帮助理解腾讯开源毫秒服务引擎msec源码
  4. Python实验之——输出数字金字塔
  5. java tcp dtu_使用有人DTU设备接入OneNet(基于TCP透传)
  6. Android:判断App是否是首次focuse
  7. 养成精通英语的三十个好习惯
  8. 拒绝毒瘤:推特正试图让“回复人”闭嘴
  9. 6 种 MySQL 数据库平滑扩容方案剖析
  10. element ui 基本操作