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

📄 datacontrolu.pas

📁 sql server2000开发版数据库备份与还原dll源码
💻 PAS
字号:
unit DataControlU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,IniFiles, ComCtrls, DB, ADODB, RzCommon, RzSelDir;

type
  TDataControlFom = class(TForm)
    pb1: TProgressBar;
    cmdado: TADOCommand;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button3: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    Button4: TButton;
    dlgOpen2: TOpenDialog;
    RzSelDirDialog1: TRzSelDirDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    sconnstring: string;
    DllconMain: TADOConnection;
    procedure Save;stdcall;
    procedure Restores;stdcall;
  end;

var
  DataControlFom: TDataControlFom;

implementation

{$R *.dfm}

procedure TDataControlFom.Save;//数据库备份
var
  i:integer;
  str:string;
  //connstr:string;
  //pass:string;
  //data:string;
  //myini: tinifile;
begin
  //Myini:=Tinifile.Create(ExtractFilePath(Paramstr(0))+'Clint.ini');
  //pass:=myini.ReadString('db','userpass','');
  //data:=myini.ReadString('db','data','');
  //connstr:='Provider=SQLOLEDB.1;Password='+pass+';Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source='+data+'';

  //connstr:= 'Provider=SQLOLEDB.1;Password=xfgd20080922;Persist Security Info=True;User ID=xfgd;Initial Catalog=HQZHKZXT;Data Source= 127.0.0.1';
  pb1.Visible:=true;
  for i:=pb1.Min to pb1.Max do
  begin
    pb1.Position:=i;
  end;
    str:=' backup database HQZHKZXT to disk= '+QuotedStr(Edit1.text+'\'+FormatDateTime('yyyymmddhhmm',Now)+'HQZHKZXT.dat');
    cmdado.ConnectionString:= sconnstring;
    cmdado.CommandText:=str;
    cmdado.Execute;
    application.MessageBox('数据库备份成功','',0);
    pb1.Visible:=false;
    close;

end;

procedure TDataControlFom.Restores;//数据库还原
var
  i:integer;
  str:string;
  connstr:string;
  //pass:string;
  //data:string;
  //str1:string;
  conMain: TADOConnection;
begin
//Myini:=Tinifile.Create(ExtractFilePath(Paramstr(0))+'Clint.ini');//从ini配置文件中读取sql服务器地址和密码
  // pass:=myini.ReadString('db','userpass','');
   //data:=myini.ReadString('db','data','');
 // connstr:='Provider=SQLOLEDB.1;Password='+pass+';Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source='+data+'';

  connstr:= sconnstring;
  str :='RESTORE DATABASE HQZHKZXT FROM disk ='+QuotedStr(Edit2.text);

  if application.MessageBox('还原数据库将覆盖现有的数据,确认吗?','确认',1)=1 then
  begin
    conMain:= DllconMain;
    conMain.Connected:=false;
    conMain.CommandTimeout:= 30;
    pb1.Visible:=true;
    for i:=PB1.Min to pb1.Max do
    begin
      pb1.Position:=i;
    end;
      cmdado.ConnectionString:=connstr;
      cmdado.CommandText:='USE MASTER ALTER DATABASE HQZHKZXT SET OFFLINE WITH ROLLBACK IMMEDIATE';
      cmdado.Execute;
      cmdado.CommandText:=str;
      cmdado.Execute;
   end
   else
     begin
       close;
     end;
   application.MessageBox('数据库还原成功!','系统提示',0);
   pb1.Visible:=false;
   conMain.Connected:=true; 
   close;
end;
procedure TDataControlFom.Button1Click(Sender: TObject);
var
  myhandle:hwnd;
begin
  Save;
end;

procedure TDataControlFom.Button2Click(Sender: TObject);
begin
  DoubleBuffered:= True;
  Restores;
end;

procedure TDataControlFom.Button3Click(Sender: TObject);
begin
  if RzSelDirDialog1.Execute then
  begin
    Edit1.Text := Trim(RzSelDirDialog1.Directory);
  end;
end;

procedure TDataControlFom.FormShow(Sender: TObject);
begin
  RzSelDirDialog1.Directory:= ExtractFilePath(ParamStr(0))+'databak';
  dlgOpen2.initialDir:= ExtractFilePath(ParamStr(0))+'databak';
  dlgOpen2.Options := [ofAllowMultiSelect, ofFileMustExist];
  dlgOpen2.Filter := 'Data files (*.dat)|*.bat|All files (*.*)|*.*';
  dlgOpen2.FilterIndex := 1; { start the dialog showing all files }
  Edit1.Text:= RzSelDirDialog1.Directory;
  Edit2.Text:= dlgOpen2.InitialDir;
end;

procedure TDataControlFom.Button4Click(Sender: TObject);
begin
  if dlgOpen2.Execute then
  begin
    Edit2.Text := Trim(dlgOpen2.FileName);
  end;
end;

procedure TDataControlFom.FormCreate(Sender: TObject);
var
  iniconfig : TIniFile;
  sfilename:string;
  sip:string;
begin
  try
    sfilename := ExtractFilePath(ParamStr(0))+'Config.ini';
    iniconfig := TIniFile.Create(sfilename);
    sip := iniconfig.ReadString('服务器IP','ServerIP','local');
    sconnstring := Format('Provider=SQLOLEDB.1;Password=xfgd20080922;Persist Security ' +
      'Info=True;User ID=xfgd;Initial Catalog=HQZHKZXT;Data Source=%s',[sip]);
  finally
    iniconfig.Free;
  end;
end;

end.

⌨️ 快捷键说明

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