📄 datacontrolu.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 + -